Cita:
Iniciado por Elly
Soy principiante en ASP .NET y tengo un codigo para obtener la informacion contenida en un DropDownList1 y luego colocarla en un textbox pero necesito colocar el primer elemento en blanco este es mi codigo en la pagina
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Id_AreaEsc" DataValueField="Id_AreaEsc" OnSelectedIndexChanged="DropDownList1_TextChanged" AutoPostBack="True">
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SABEConnectionString %>"
SelectCommand="SELECT * FROM [CatAreaEscolar]"></asp:SqlDataSource>
y mi codigo en C# para obtener los datos es :
protected void DropDownList1_TextChanged(object sender, EventArgs e)
{
int listindex;
DataView dv = (DataView)SqlDataSource1.Select(new DataSourceSelectArguments());
DataTable dt = dv.ToTable();
listindex = (int)this.DropDownList1.SelectedIndex;
DataRow dr = dt.Rows[listindex];
TextBox2.Text = dr["Alias"].ToString();
TextBox1.Text = dr["Descripcion"].ToString();
}
Gracias espero que me puedan ayudar
Lo siento, pero no te entiendo muy bien.
Yo intuyo que lo que quieres hacer es que cuando selecciones un elemento del dropdownlist muestres ciertos datos en los textbox, no?
Y que cuando selecciones el primer elemento "en blanco" los textbox aparezcan vacíos, no?
Si eso es lo que quieres, lo que yo haría seria lo siguiente:
1. Cuando rellenes el DropDownList hacer lo que dice RootK:
Código:
DropDownList1.Items.Insert(0, new ListItem("texto", "valor"));
2. En el codigo comprobar que elemento se ha seleccionado:
Código:
protected void DropDownList1_TextChanged(object sender, EventArgs e)
{
int listindex;
DataView dv = (DataView)SqlDataSource1.Select(new DataSourceSelectArguments());
DataTable dt = dv.ToTable();
listindex = (int)this.DropDownList1.SelectedIndex;
if(listindex != 0)
{
//Aqui pongo listindex-1 porque al añadir el primer elemento en la posicion 0, los indices del dropdownlist no coinciden con los del datatable, estando siempre uno por encima.
DataRow dr = dt.Rows[listindex-1];
TextBox2.Text = dr["Alias"].ToString();
TextBox1.Text = dr["Descripcion"].ToString();
}
else
{
TextBox2.Text = String.Empty;
TextBox1.Text = String.Empty;
}
}
Espero que te ayude, un saludo.