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.
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.
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
.
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"));
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");
}
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.
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!
ddList.Items.FindByText("oldValue").Selected = false;
ddList.Items.FindByText("newValue").Selected = true;
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;
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
}