2009-09-08 8 views
0

Je souhaite afficher les éléments dans ma liste déroulante2 (à partir du tableau 2) en fonction de l'élément sélectionné de la liste déroulante1 (du tableau 1). Dans la suite, j'ai juste essayé de sélectionner les valeurs de la colonne lang de table2 en fonction de la valeur qui est dans la liste déroulante1 .. ((juste pour insérer dans la liste déroulante1)) est ce code correct ...?insertion d'éléments dans la liste déroulante

SqlDataAdapter da = new SqlDataAdapter(
     "Select lang from table2 [email protected]",connect.con()); 
    da.SelectCommand.Parameters.AddWithValue("@d", DropDownList1.SelectedItem.Text); 
    DataSet ds=new DataSet(); 
    da.Fill(ds,"l1"); 
    DropDownList2.Items.Add(ds); 

Y a-t-il un autre moyen de le faire ...?

Répondre

2

Pour ajouter les nouvelles valeurs dans un dropdownlist existant, vous devez ajouter les nouvelles lignes manualy:

foreach (DataRow dr in ds.Tables[0].Rows) 
{ 
    DropDownList2.Items.Add(new ListItem(dr["TextField"].ToString(), dr["ValueField"].ToString())); 
} 

Ou, vous devriez merge datatables avant de les lier à votre dropdownlist.

0

Si vous voulez seulement que DropDownList2 soit rempli avec les valeurs qui sont retournées après la requête que vous venez de mentionner, vous devriez juste l'indexer.

SqlDataAdapter da = new SqlDataAdapter(
    "Select lang from table2 [email protected]",connect.con()); 
da.SelectCommand.Parameters.AddWithValue("@d", DropDownList1.SelectedItem.Text); 
DataSet ds=new DataSet(); 

DropDownList2.DataSource = ds; 
DropDownList2.DataTextField = "lang"; 
DataBind(); 

Ce qui est plus, vous pouvez également ajouter un champ de valeur à la liste déroulante de cette façon (mais vous devez modifier la requête SQL il retour Wold 2 colonnes):

"Select lang,colId from table2 [email protected]" 

DropDownList2.DataSource = ds; 
DropDownList2.DataTextField = "lang"; 
DropDownList2.DataValueField= "colId "; 
DataBind(); 

Bonne chance! ;)

0

Essayez de câbler l'événement SelectedIndexChanged sur dropdownlist one puis de lier dropdownlist two. Je suppose que vous utilisez Asp.net ...

Ce serait dans votre page ASPX:

<asp:DropDownList ID="ddlOne"runat="server" OnSelectedIndexChanged="ddlOne_OnSelectedIndexChanged" 
           AutoPostBack="true" /> 

<asp:DropDownList ID="ddlTwo"runat="server" DataTextField="lang" DataValueField="colId" /> 

Ce serait dans votre behind:

protected void ddlOne_OnSelectedIndexChanged(object sender, EventArgs e) 
{ 
     // Go get your data here then bind to it.. 
     ddlTwo.DataSource = "Whatever datasource you want here"; 
     ddlTwo.DataBind(); 
} 
Questions connexes