2009-03-02 17 views
19

L'associazione dati riguarda esclusivamente il codice dichiarativo, giusto? Quindi specificherò ciò che voglio con gli attributi, e il framework si prenderà cura di tutto il resto. A meno che non mi sbagli e il binding dei dati si riferisca a S & M, giusto?Come associare il valore selezionato a DropDownList

Quindi, perché il controllo DropDownList fornisce solo campi di associazione per la propria origine dati, ovvero la sua origine elenco e non per il campo dati effettivo. Ad esempio, come diavolo posso associare il valore selezionato il mio nome DropDownList al campo Nome nel mio record Persona? Si tratta di una svista grossolana da parte di Microsoft o della mia?

Qual è il punto di associazione dei dati bidirezionale se devo ancora impostare e leggere manualmente il valore selezionato?

risposta

44

Si potrebbe desiderare di fare qualcosa di simile il codice qui sotto. Non è possibile impostare il "SelectedValue" dichiarativo, ma dicendo "SelectedValue = <% # [codice qui]%> si sta effettivamente la causa del valore da impostare quando il controllo è i dati associati.

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

Grazie, sono stato un po 'veloce: ho appena guardato in Intellisense per un attributo Value, e nessuno ha mostrato, quindi ho chiesto senza guardare oltre. Abbiamo bisogno di un'emoticon imbarazzata nei commenti. – ProfK

+1

Ricevo, in .NET 4, un errore che afferma: "Una chiamata a Bind deve essere assegnata a una proprietà di un controllo all'interno di un modello" anche se il controllo si trova all'interno di un ItemTemplate di un GridView. Cambiare Bind in Eval ha funzionato per me. –

+0

@Andrew - Il mio è all'interno di un campo di modello di modifica e sto utilizzando asp.NET 4.0. Ho provato a utilizzare EVAL anziché Bind, ma ancora non ha funzionato. Qualche idea? –

-1

C'è un campo in cui si definisce l'origine dati, il datatextfield (ciò che appare nell'elenco) e il campo dativalore.

Esempio (Ho un DataTable con una colonna "EmployeeID" e una colonna "EmployeeName"):

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

Se avete letto la mia domanda che ci si vede che so su quelli. Volevo sapere come associare il valore selezionato a un altra fonte di dati, come ho chiesto. – ProfK

+0

Non importa se lo sapete. Se la tua domanda dovrebbe essere vantaggiosa per gli altri forse dovrebbe includere una variazione di soluzioni. – Harry

0

non so se sarà davvero aiutare, ma ha fatto si è tentato di impostare il "SelectedValue" sul codice dietro

Esempio:?

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