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?

21
demandé sur ProfK 2009-03-03 00:58:26

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") %>'
                />
47
répondu Andrew Shepherd 2015-05-08 13:21:53

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
0
répondu V1NNY 2016-03-29 18:27:57

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()
-1
répondu TheTXI 2009-03-02 22:03:51