Impostazione dropdownlist selecteditem a livello di codice

Voglio impostare l’attributo selecteditem per un controllo dropdownlist ASP.Net a livello di codice.

Quindi voglio passare un valore al controllo elenco a discesa per impostare l’elemento selezionato in cui l’elemento è uguale al valore passato.

Supponendo che l’elenco sia già associato ai dati, è sufficiente impostare la proprietà SelectedValue nell’elenco a discesa.

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

Il valore della variabile myValue dovrebbe esistere nella proprietà specificata all'interno di DataValueField nel tuo controllo databinding.

AGGIORNAMENTO : se il valore di myValue non esiste come valore con le opzioni dell'elenco a discesa, per impostazione predefinita verrà selezionata la prima opzione nell'elenco a discesa.

ddlData.SelectedIndex conterrà il valore int Per selezionare il valore specifico in DropDown :

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

return tipo di ddlData.Items.IndexOf(ddlData.Items.FindByText("value")); è int .

Ecco il codice che stavo cercando:

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

O

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

Bene, se ho capito correttamente la tua domanda. La soluzione per l’impostazione del valore per un determinato elenco a discesa sarà:

 dropdownlist1.Text="Your Value"; 

Funzionerà solo se il valore è presente nell’origine dati dell’elenco a discesa.

Se è necessario selezionare l’elemento dell’elenco in base a un’espressione:

 foreach (ListItem listItem in list.Items) { listItem.Selected = listItem.Value.Contains("some value"); } 
 var index = ctx.Items.FirstOrDefault(item => Equals(item.Value, Settings.Default.Format_Encoding)); ctx.SelectedIndex = ctx.Items.IndexOf(index); 

O

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

Dovrebbe funzionare .. specialmente quando si usano controlli RAD estesi in cui FindByText / Value non esiste nemmeno!

 ddList.Items.FindByText("oldValue").Selected = false; ddList.Items.FindByText("newValue").Selected = true; 

Al caricamento di My Windows Form il comboBox mostrerà la colonna ClassName del mio DataTable quanto è DisplayMember ha anche il suo ValueMember (non visibile all’utente) con esso.

 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 } 
  ddlemployee.DataSource = ds.Tables[0]; ddlemployee.DataTextField = "Employee Name"; ddlemployee.DataValueField = "RecId"; ddlemployee.DataBind(); ddlemployee.Items.Insert(0, "All");