OMG Cela fait deux jours que je fais cela et je n'arrive toujours pas à trouver la solution. Voici mon scénario:Remplir la zone de liste déroulante en fonction de l'index sélectionné depuis une autre zone de liste déroulante
J'ai trois contrôles de boîtes combo et j'ai besoin de charger des données du jeu de données de manière dinamique.
- cbCode1 est rempli avec la forme de chargement.
- cbCode2 est peuplée lorsque l'indice sélectionné parmi cbCode1 change
- cbCode3 est Remplit lorsque l'indice sélectionné de cbCode1 change
les données proviennent de deux champs dans la DATSET « description » et « id_code ». Donc, je veux associer la valeur de la description avec son identifiant. Parce que je dois demander plus tard ..
Dans la forme de charge que j'ai ceci:
cbCode1.DataSource = D.Tables [0]; cbCode1.DisplayMember = D.Tables [0] .Colonnes ["description"]. ColumnName; cbCode1.ValueMember = D.Tables [0] .Colonnes ["id_code"]. ColumnName;
Maintenant, lorsque l'indice sélectionné des changements de cbcode1:
private void cbCode1_SelectedIndexChanged(object sender, EventArgs e)
{
// Get dataset from DB
DataSet D = new DataSet();
D = reason_get(1, 1, 1); // IdStation, Active, Level
// Ensure the cbcode2 is cleared
cbCode2.Items.Clear();
string SelectedValue = cbCode1.SelectedValue.ToString();
foreach (DataRow row in D.Tables[0].Rows)
{
if (row["id_parent_code"].ToString() == SelectedValue)
{
cbCode2.DataSource = D.Tables[0];
cbCode2.DisplayMember = D.Tables[0].Columns["description"].ColumnName;
cbCode2.ValueMember = D.Tables[0].Columns["id_code"].ColumnName;
cbCode2.SelectedIndex = 0;
}
}
}
Ce code ne fonctionne pas, je ne sais pas ce que je fais mal. s'il vous plaît aider à résoudre ce problème?
Merci d'avance!
Un programmeur débutant ..
Utilisez de meilleurs noms de variables que 'cbCode1' et' cbCode2'. Utilisez un nom qui indique réellement ce que la valeur signifie. – unholysampler