2016-04-10 14 views
5

ich einen Dropdownlist zu initialisieren bin versucht und das ist meine Methode wählen:Wie initialisieren Dropdownlist mit Listitem

public List<ListItem> metodShownAbove() 
{ 
    List<ListItem> initlist = new List<ListItem>(); 
    if (!IsPostBack) 
    { 
     initlist.Add(new ListItem("--- all---", "-1")); 
     initlist.Add(new ListItem("text1", "Value1")); 
     initlist.Add(new ListItem("text2", "Value2")); 
     initlist.Add(new ListItem("text3", "Value3")); 
    } 
    return initlist; 
} 

Und das ist auf meiner aspx Seite:

<asp:DropDownList ID="DDL" runat="server" AutoPostBack="True" 
    SelectMethod="metodShownAbove"/> 

Der initlist zurückkehrt, was Ich möchte zurückgeben, Text und Wert wie oben gezeigt. Aber wenn ich versuche, den ausgewählten Wert oder Text, DDL.SelectedItem.Value und DDL.SelectedItem.Text, zu erhalten, ist es derselbe Wert, der erste in ListItem initlist. Es gibt keine Eigenschaft in DDL, die 'Value1' enthält. Was mache ich falsch, wie setze ich Werte korrekt ein, damit ich sowohl Wert als auch Text lesen kann?

Antwort

6

Sie müssen die DataValueField der Dropdownlist auf die Value Eigenschaft des Listitem gesetzt:

<asp:DropDownList ID="DDL" runat="server" DataTextField="Text" DataValueField="Value" ... /> 

Hier Ich habe auch die DataTextField auf die Text Eigenschaft der Elemente.

Verwandte Themen