Configuración de lista desplegable elemento seleccionado programáticamente

Quiero establecer programáticamente el atributo de elemento selecteditem para un control de lista desplegable de ASP.Net.

Así que quiero pasar un valor al control de lista desplegable para establecer el elemento seleccionado donde el elemento es igual al valor pasado.

Suponiendo que la lista ya está vinculada a los datos, simplemente puede establecer la propiedad SelectedValue en su lista desplegable.

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

El valor de la variable myValue debería existir en la propiedad especificada en DataValueField en su enlace de datos de controles.

ACTUALIZACIÓN : si el valor de myValue no existe como un valor con las opciones de la lista desplegable, se seleccionará de manera predeterminada la primera opción en la lista desplegable.

ddlData.SelectedIndex contendrá el valor int Para seleccionar el valor específico en DropDown :

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

tipo de ddlData.Items.IndexOf(ddlData.Items.FindByText("value")); de ddlData.Items.IndexOf(ddlData.Items.FindByText("value")); es int .

Aquí está el código que estaba buscando:

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

O

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

Bueno, si entendí correctamente tu pregunta. La solución para establecer el valor para una lista desplegable dada será:

 dropdownlist1.Text="Your Value"; 

Esto solo funcionará si el valor existe en la fuente de datos de la lista desplegable.

Si necesita seleccionar su elemento de lista basado en una expresión:

 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); 

Debería funcionar … ¡especialmente cuando se usan controles RAD extendidos en los que FindByText / Value ni siquiera existe!

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

Al cargar My Windows Form, comboBox mostrará la columna ClassName de mi DataTable ya que es el DisplayMember también tiene su ValueMember (no visible para el usuario).

 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");