visual net item example asp c# listbox

net - listview c#



Cómo obtener el valor del elemento seleccionado de la lista (4)

Realmente debería ser así de fácil; Tengo lo siguiente en un evento de clic para el botón para asegurarme de no simplificarlo en mi cabeza:

private void button1_Click(object sender, EventArgs e) { string selected = listBox1.GetItemText(listBox1.SelectedValue); MessageBox.Show(selected); }

Y el resultado:

Editar

Parece que su problema puede deberse a no establecer una propiedad en el control:

  1. Seleccione el control ListBox
  2. Haga clic en la pequeña flecha para mostrar las opciones de encuadernación / elementos
  3. Seleccione Usar elementos enlazados a datos

Si desactivo esa casilla, obtengo exactamente el mismo comportamiento que está describiendo.

Estoy trabajando con C # .NET 4.0

Estoy tratando de obtener el valor de un solo elemento seleccionado en un cuadro de lista.

Así es como llené el control:

this.files_lb.DataSource = DataTable object

En mi diseñador, he especificado file_name como DisplayMember y file_id como DisplayValue

Después de seleccionar un elemento en el cuadro de lista, intenté lo siguiente para obtener el valor:

this.files_lb.SelectedValue.ToString()

Pero todo lo que devuelve es "System.Data.DataRowView".

En este enlace: obtener el valor del elemento seleccionado en el cuadro de lista como cadena

alguien sugirió

String SelectedItem = listBox1.SelectedItem.Value

Sin embargo, ''Valor'' no es una opción cuando intento esto.

¿Cómo puedo obtener el valor ValueMember de un solo elemento seleccionado en un cuadro de lista?


var text = (listBox1.SelectedItem as DataRowView)["columnName"].ToString();

Reemplace columnName con el nombre de la columna de la que desea obtener los datos, que se corresponderá con una columna en su fuente de datos.

También ten cuidado con los nulos si no hay un elemento seleccionado.


var selectedValue = listBoxTopics.SelectedItem; if (selectedValue != null) { MessageBox.Show(listBoxTopics.SelectedValue.ToString()); }


Es posible que deba establecer DataValueField del cuadro de lista.

NewEmployeesLB.DataSource = newEmployeesPersons.DataList.Select(np => new ListItem() { Text = np.LastName + ", " + np.FirstName, Value = np.PersonID.ToString() }).ToList(); NewEmployeesLB.DataTextField = "Text"; NewEmployeesLB.DataValueField = "Value"; NewEmployeesLB.DataBind();