web-dev-qa-db-fra.com

Définition de la liste déroulante des éléments sélectionnés par programme

Je veux définir l'attribut selecteditem pour un contrôle ASP.Net dropdownlist par programme.

Je souhaite donc transmettre une valeur au contrôle dropdownlist pour définir l’élément sélectionné, l’élément étant égal à la valeur transmise.

62
Eyla

En supposant que la liste est déjà liée aux données, vous pouvez simplement définir la propriété SelectedValue dans votre liste déroulante.

list.DataSource = GetListItems(); // <-- Get your data from somewhere.
list.DataValueField = "ValueProperty";
list.DataTextField = "TextProperty";
list.DataBind();

list.SelectedValue = myValue.ToString();

La valeur de la variable myValue devrait exister dans la propriété spécifiée dans la DataValueField dans la liaison de données de vos contrôles.

UPDATE: Si la valeur de myValue n'existe pas en tant que valeur avec les options de la liste déroulante, la première option de la liste déroulante sera sélectionnée.

88
Wallace Breza

ddlData.SelectedIndex contiendra la valeur int Pour sélectionner la valeur spécifique dans DropDown:

ddlData.SelectedIndex=ddlData.Items.IndexOf(ddlData.Items.FindByText("value"));

return type de ddlData.Items.IndexOf(ddlData.Items.FindByText("value")); est int.

59
PrateekSaluja

Voici le code que je cherchais:

DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByText("PassedValue"));

Ou

DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByValue("PassedValue"));
28
Eyla

Si vous devez sélectionner votre élément de liste en fonction d'une expression:

foreach (ListItem listItem in list.Items)
{
    listItem.Selected = listItem.Value.Contains("some value");
}
4
Craig Curtis

Bien si j'ai bien compris votre question. La solution pour définir la valeur d'une liste déroulante donnée sera:

dropdownlist1.Text="Your Value";

Cela ne fonctionnera que si la valeur existe dans la source de données de la liste déroulante.

4
maxspan
var index = ctx.Items.FirstOrDefault(item => Equals(item.Value, Settings.Default.Format_Encoding));
ctx.SelectedIndex = ctx.Items.IndexOf(index);

OR

foreach (var listItem in ctx.Items)
  listItem.Selected = Equals(listItem.Value as Encoding, Settings.Default.Format_Encoding);

Devrait fonctionner .. surtout lorsque vous utilisez des contrôles RAD étendus dans lesquels FindByText/Value n'existe même pas!

1
Latency
ddList.Items.FindByText("oldValue").Selected = false;
ddList.Items.FindByText("newValue").Selected = true;
1
A. Obeid

Contrôle de sécurité pour sélectionner uniquement si un élément correspond.

//try to find item in list.  
ListItem oItem = DDL.Items.FindByValue("PassedValue"));
//if exists, select it.
if (oItem != null) oItem.Selected = true;
0
mike

Lors du chargement de Mon formulaire Windows, la comboBox affichera la colonne ClassName de ma DataTable car il s'agit de la DisplayMember et de sa ValueMember (non visible pour l'utilisateur).

private void Form1_Load(object sender, EventArgs e)
            {
                this.comboBoxSubjectCName.DataSource = this.Student.TableClass;
                this.comboBoxSubjectCName.DisplayMember = TableColumn.ClassName;//Column name that will be the DisplayMember
                this.comboBoxSubjectCName.ValueMember = TableColumn.ClassID;//Column name that will be the ValueMember
            }
0
Parag555