2009-03-02 29 views
19

El enlace de datos tiene que ver con el código declarativo, ¿no? Así que especifico lo que quiero con los atributos, y el marco se ocupa del resto. A menos que esté equivocado y el enlace de datos se relaciona con S & M, ¿verdad?Cómo enlazar el valor seleccionado de DropDownList

Entonces, ¿por qué el control DropDownList solo proporciona campos de enlace para su fuente de datos, es decir, su fuente de lista, y no para su campo de datos real. es decir, ¿cómo diablos ataré el valor seleccionado con mi nombre DropDownList al campo Nombre en mi registro de Persona? ¿Es esto una gran supervisión por parte de Microsoft o la mía?

¿Cuál es el punto de enlace de datos bidireccional si todavía tengo que configurar manualmente y leer el valor seleccionado?

Respuesta

44

Es posible que desee hacer algo como el código de abajo. No se puede establecer el "SelectedValue" declarativa, pero diciendo "SelectedValue = <% # [código aquí]%> que están causando efectivamente el valor que se establece cuando el control está enlazado a datos.

<asp:DropDownList 
       ID="DropDownInfoSource" 
       runat="server" 
       DataSourceID="_employeeDataSource" 
       DataTextField="EmployeeName" 
       DataValueField="EmployeeID" 
       SelectedValue='<%# Bind("EmployeeID") %>' 
       /> 
+3

Gracias, fui un poco rápido: solo busqué en Intellisense un atributo de valor, y ninguno apareció, así que lo hice sin mirar más. Necesitamos un emoticón avergonzado en los comentarios. – ProfK

+1

Obtengo, en .NET 4, un error que indica: "Una llamada a Bind debe asignarse a una propiedad de un control dentro de una plantilla", aunque el control esté dentro de una ItemTemplate de una GridView. Cambiar Bind to Eval funcionó para mí. –

+0

@Andrew - Mine está dentro de un campo de plantilla de edición, y estoy usando asp.NET 4.0. Intenté usar EVAL en lugar de Bind, pero aún así no funcionó. ¿Algunas ideas? –

-1

Hay un campo donde se define el origen de datos, el campo de texto de datos (lo que aparece en la lista) y el campo del valor de datos.

Ejemplo (tengo una tabla de datos con una columna "de empleado" y una columna "EmployeeName"):

dropdownlist1.datasource = DT 
dropdownlist1.datatextfield = "EmployeeName" 
dropdownlist1.datavaluefield = "EmployeeID" 
dropdownlist1.databind() 
+7

Si usted lee mi pregunta te gustaría ver que sé de aquellos. Quería saber cómo vincular el valor seleccionado a un otra fuente de datos, como pregunté. – ProfK

+0

No importa si lo sabe. Si su pregunta debería ser beneficiosa para otros, tal vez debería incluir una variedad de soluciones. – Harry

0

no sé si realmente le ayudará, pero no se trató de configurar el "SelectedValue" en código detrás

Ejemplo:?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    DropDownInfoSource.SelectedValue = "1" ' your value, here 
End Sub 
Cuestiones relacionadas