J'ai deux zones de liste déroulante. J'insère une valeur dans la première zone de liste déroulante et maintenant je veux que ma deuxième zone de liste déroulante mette à jour sa valeur selon le premier. Comment devrais-je faire ça?Mise à jour automatique d'une zone de liste déroulante lorsque la première zone de liste modifiable prend de la valeur
Répondre
Abonnez-vous à la première valeur de combobox événement changé et peupler la seconde:
combobox1.SelectedIndexChanged+= new EventHandler(ListBox1_SelectedIndexChanged);
private combobox1_SelectedIndexChanged(object sender, EventArgs e)
{
// do stuff with combobox2
}
ou
combobox1.SelectedValueChanged += new EventHandler(ListBox1_SelectedValueChanged);
private combobox1_SelectedValueChanged(object sender, EventArgs e)
{
// do stuff with combobox2
}
Population:
combobox2.Items.Add(new object());
combobox2.Items.Add(new ListItem("caption", "value"));
// etc
Trouver un élément existant:
var index = combobox2.FindStringExact(combobox1.SelectedText);
if (index != -1)
comobox2.SelectedItem = combobox2.Items[index];
quelle est la syntaxe pour remplir la seconde? – ghd
@sas: Voir ma mise à jour – abatishchev
Je dois le faire quand la première liste déroulante obtient une valeur 'a' par exemple alors la deuxième liste déroulante devrait montrer automatiquement la dernière valeur dans la liste déroulante de la liste déroulante. Je ne suis pas en mesure d'obtenir la syntaxe pour mettre à jour la valeur de la deuxième zone de liste déroulante – ghd
Gérez l'événement SelectedIndexChanged
pour le premier ComboBox
, puis mettez à jour la deuxième zone de liste déroulante en fonction de la valeur SelectedItem
pour le premier ComboBox
.
Un exemple rapide (traitement des erreurs de sans lors de la récupération du SelectedItem):
public partial class Form1 : Form
{
private string[] comboBox1Range = new[] { "A", "B", "C", "D" };
private string[] comboBox2RangeA = new[] { "A1", "A2", "A3", "A4" };
private string[] comboBox2RangeB = new[] { "B1", "B2", "B3", "B4" };
private string[] comboBox2RangeC = new[] { "C1", "C2", "C3", "C4" };
private string[] comboBox2RangeD = new[] { "D1", "D2", "D3", "D4" };
public Form1()
{
InitializeComponent();
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
comboBox1.Items.AddRange(comboBox1Range);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedValue = comboBox1.SelectedItem as string;
switch (selectedValue)
{
case "A":
comboBox2.Items.Clear();
comboBox2.Items.AddRange(comboBox2RangeA);
break;
case "B":
comboBox2.Items.Clear();
comboBox2.Items.AddRange(comboBox2RangeB);
break;
case "C":
comboBox2.Items.Clear();
comboBox2.Items.AddRange(comboBox2RangeC);
break;
case "D":
comboBox2.Items.Clear();
comboBox2.Items.AddRange(comboBox2RangeD);
break;
}
}
}
Exemple de code, Winform avec deux ComboBoxes DataBound à deux tables dans un ensemble de données. Tableau "LstCountries" liste des pays actuels Tableau "lstState" liste de tous les états/provinces pour tous les pays.
Tableau lstCountries (Int32 CountryID, chaîne CountryName) Tableau lstStates (Int32 StateID, Int32 CountryID, chaîne StateName)
Dans ce code, je remplir cboState sur la base de la valeur sélectionnée cboCountry tandis que les deux combodropdowns sont liés à des données tables extraites d'une base de données.
// Load data from database (not shown)
// _dataSet.Tables["lstCountries"] datasource for cboCountry
// _dataSet.Tables["lstStates"] datasource for cboState
//
// cboCountry - comboDropDown - List on countries
// cboState = comboDropDown - List of states
// Use boolean bloading to prevent setting datasource for cboState when cboCountry is intially loaded.
void cboCountry_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox cbo = (sender as ComboBox);
if (cbo.SelectedIndex > -1 && !bloading)
{
Int32 countryID = Convert.ToInt32(((System.Data.DataRowView)(cbo.SelectedItem)).Row.ItemArray[0].ToString());
cboState.Text = "";
DataView view = _dataSet.Tables["lstStates"].DefaultView;
view.RowFilter = string.Format("CountryID={0}", countryID);
DataTable table = view.ToTable();
cboState.DataSource = table;
cboState.SelectedIndex = -1;
}
Je veux sélectionner Ders cette cmbDers puis SQL mise à jour liée cmbKonu comme ce pays-Ville. Mais je reçois une incompatibilité de type de données. Quel est le problème?
Charge de formulaire OleDbDataAdapter adp = new OleDbDataAdapter ("select * from Ders", baglanti); DataTable dt = new DataTable(); baglanti.Open(); adp.Fill (dt); cmbDers.DataSource = dt; cmbDers.DisplayMember = "DersAd"; cmbDers.ValueMember = "DersID"; baglanti.Close();
private void cmbDers_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable dt = new DataTable();
OleDbDataAdapter adp = new OleDbDataAdapter ("select * from Konu where DersID = '" +cmbDers.SelectedItem+"'",baglanti);
adp.Fill(dt);
cmbKonu.DataSource = dt;
cmbKonu.DisplayMember = "KonuAd";
cmbKonu.ValueMem`enter code here`ber = "KonuID";
baglanti.Close();`enter code here`
- 1. Modification d'une zone de liste déroulante modifiable
- 2. Zone de liste déroulante Question
- 3. zone de liste mise à jour Problème
- 4. soumettre une zone de liste modifiable désactivée
- 5. Ajout d'une nouvelle valeur à la zone de liste déroulante
- 6. Comment une liste déroulante non modifiable (zone de liste modifiable) doit-elle être formatée dans Winforms?
- 7. Valeur de réglage de la zone de liste déroulante à la dernière valeur soumise avec javascript
- 8. Comment redimensionner la liste déroulante d'une liste déroulante avec la zone de liste déroulante?
- 9. Zone de liste modifiable JQuery et JSP
- 10. C# zone de liste déroulante zones de modification de zone de liste déroulante
- 11. jquery asp.net zone de liste déroulante question
- 12. pygtk - mise à jour dynamique des widgets saisis dans la zone de liste déroulante gtk
- 13. fonction de suggestion automatique AJAX zone de liste déroulante
- 14. Auto remplir une zone de liste déroulante
- 15. zone de liste déroulante et liste générique
- 16. Définition de la liste déroulante à la première valeur
- 17. Comment modifier la valeur de la deuxième zone de liste déroulante lors de la modification de la valeur de la première zone de liste modifiable à l'aide de jquery?
- 18. Besoin de "liste déroulante modifiable"
- 19. Événements de zone de liste déroulante VB6
- 20. Sélection automatique d'un élément à partir d'une zone de liste déroulante de saisie semi-automatique jQuery
- 21. WPF zone de liste déroulante en surbrillance
- 22. zone de liste déroulante automatique en datagridview dans .net
- 23. Remplir la zone de liste déroulante en fonction de l'index sélectionné depuis une autre zone de liste déroulante
- 24. Problème lors de la définition du fournisseur de données xml pour la zone de liste modifiable
- 25. Ajouter la valeur de la zone de texte à la zone de liste sur l'onglet
- 26. ZK obtenir l'élément sélectionné de la zone de liste déroulante
- 27. Ajustement de la largeur de la liste déroulante de remplissage automatique dans une zone de texte
- 28. Liaison de données sur la zone de liste déroulante
- 29. winforms synchronise les valeurs de la zone de liste déroulante
- 30. zone de liste déroulante Lier (JQuery préférence)
Quelle technologie utilisez-vous? WPF, Silverlight, winforms? – Stephane
J'utilise winforms – ghd