¿Cómo llenar DropDownList de la base de datos en asp.net?

¿Cómo llenar DropDownList de la base de datos en asp.net?

y cuando selecciono un valor de DropDownList, ¿cómo capturar este evento?

Conn.Open();
SQL = "SELECT distinct city FROM MEN";
dsView = new DataSet();
adp = new SqlDataAdapter(SQL, Conn);
adp.Fill(dsView, "MEN");
adp.Dispose();

DropDownList1. ?????? (what do to ?)

gracias de antemano

preguntado el 08 de enero de 11 a las 17:01

6 Respuestas

Tú estableces el DataSource, DataTextField y DataValueField y llama DataBind() para completar la lista desplegable.

La fuente de datos puede ser prácticamente cualquier IEnumerable y el texto y el valor se buscarán con reflexión.

El evento que desea atrapar es el SelectedIndexChanged evento: se activará cuando cambie la selección.

Respondido el 08 de enero de 11 a las 20:01

@Gold: la mayoría de los enlaces tienen ejemplos. - Oded

Primero tome los detalles en un conjunto de datos y luego el siguiente código lo ayudará:

DropDownList1.DataSource = ds
DropDownList1.DataTextField = "emailid"
DropDownList1.DataValueField = "userid"
DropDownList1.DataBind()
DropDownList1.Items.Insert(0, New ListItem("select", "-1"))

Respondido 08 Abr '17, 14:04

Código de muestra simple:

DropDownList.DataSource = yourDataSource;
DropDownList.DataTextField = "displayNameColumnName ";
DropDownList.DataValueField = "TheValueColumnName";
DropDownList.DataBind();

Respondido el 31 de enero de 12 a las 11:01

Este podría ser un tutorial completo para usted en este caso:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindDropDownLists();
    }
}

protected void Page_Init(object sender, EventArgs e)
{ 

        SqlDataSource sqlDS = new SqlDataSource();
        sqlDS.ConnectionString = ConfigurationManager.ConnectionStrings[0].ToString();
        sqlDS.SelectCommand = "select GenderID,Gender from mylookupGender";
        form1.Controls.Add(sqlDS);

        DropDownList ddl = new DropDownList();
        ddl.ID = "dddlGender";
        ddl.DataSource = sqlDS;
        ddl.DataTextField = "Gender";
        ddl.DataValueField = "GenderID";
        form1.Controls.Add(ddl);

        // ... Repeat above code 9 times or put in a for loop if they're all the same...
}

private void BindDropDownLists()
{
    foreach (Control ctl in form1.Controls)
    {
        if (ctl is DropDownList)
        {
            (ctl as DropDownList).DataBind();
        }
    }
}

Respondido el 31 de enero de 12 a las 12:01

//...Wrote separate class for calling this function
FunctionClass obj = new FunctionClass();
List<Designation> details = new List<Designation>();
bool result1 = obj.DataDrop(out details);
if (result1 == true)
{
dropDownDesignation.DataSource = details;
dropDownDesignation.DataTextField = "designation";
dropDownDesignation.DataValueField = "Designation_ID";
dropDownDesignation.DataBind();
dropDownDesignation.Items.Insert(0, new ListItem("--Select--", "0"));
}

//..This function wrote inside FunctionClass and called from aspx.cs page
public bool DataDrop(out List<Designation> designationDetails)
{
designationDetails = new List<Designation>();
conn = new SqlConnection(connectionName);
conn.Open();
command.Connection = conn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "DesignationDetails";
userReader = command.ExecuteReader();
if(userReader.HasRows)
{
    while(userReader.Read())
{
    designationDetails.Add(new Designation()
    {
            designationId=userReader.GetInt32(0),
            designation=userReader.GetString(1)
        });
 }
}
return true;
}
//..This should declare outside the class but inside the namespace
public class Designation
{
public int designationId { get; set; }
public string designation { get; set; }
}

Respondido 21 Abr '15, 20:04

Otra forma de vincular la lista desplegable es ...

<asp:DropDownList ID="ddlCity" runat="server" DataValueField="pkId" DataTextField="cityName" DataSourceID="sqlDB">
    </asp:DropDownList>
    <asp:SqlDataSource ID="sqlDB" ConnectionString='$Name of connecitonstring' runat="server" SelectCommand="Select * from tbl_City"></asp:SqlDataSource>

Respondido 31 ago 16, 14:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.