Comment lier la valeur sélectionnée d'une liste déroulante
La liaison de données est tout au sujet du code déclaratif, Non? Donc, je spécifie ce que je veux avec des attributs, et le framework prend soin du reste. Sauf si je me trompe et que la liaison de données concerne S & M, n'est-ce pas?
Alors, pourquoi le contrôle DropDownList ne fournit-il que des champs de liaison pour sa source de données, c'est-à-dire sa source de liste, et non pour son champ de données réel. c'est-à-dire comment diable je lie la valeur sélectionnée mon nom DropDownList au champ Nom dans mon enregistrement de personne? Est-ce un brut de surveillance sur La partie de Microsoft, ou sur la mienne?
Quel est le point de la liaison de données bidirectionnelle si je dois encore définir et lire manuellement la valeur sélectionnée?
3 réponses
Vous pourriez faire quelque chose comme le code ci-dessous. Vous ne pouvez pas définir le" SelectedValue " déclarativement, mais en disant "SelectedValue= vous définissez effectivement la valeur lorsque le contrôle est lié aux données.
<asp:DropDownList
ID="DropDownInfoSource"
runat="server"
DataSourceID="_employeeDataSource"
DataTextField="EmployeeName"
DataValueField="EmployeeID"
SelectedValue='<%# Bind("EmployeeID") %>'
/>
Je ne sais pas si cela va vraiment vous aider, mais avez-vous essayé de configurer le "SelectedValue" sur le Code derrière?
Exemple:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
DropDownInfoSource.SelectedValue = "1" ' your value, here
End Sub
Il y a un champ où vous définissez la source de données, le datatextfield (ce qui apparaît dans la liste) et le datavaluefield.
Exemple (j'ai un datatable avec une colonne "EmployeeID" et une colonne "EmployeeName"):
dropdownlist1.datasource = DT
dropdownlist1.datatextfield = "EmployeeName"
dropdownlist1.datavaluefield = "EmployeeID"
dropdownlist1.databind()