如何使用ListItems初始化DropDownList

139*_*ser 5 asp.net drop-down-menu

我正在尝试初始化DropDownList,这是我的select方法:

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;
}
Run Code Online (Sandbox Code Playgroud)

这是在我的aspx页面上:

<asp:DropDownList ID="DDL" runat="server" AutoPostBack="True" 
    SelectMethod="metodShownAbove"/> 
Run Code Online (Sandbox Code Playgroud)

initlist返回我想要返回的内容,文本和值,如上所示.但是,当我试图让所选择的值或文本,DDL.SelectedItem.Value并且DDL.SelectedItem.Text,它是相同的值,在列表项initlist第一个.DDL中没有包含"Value1"的属性.我做错了什么,如何正确插入值,以便我可以读取,值和文本?

Con*_*Fan 6

您必须将DataValueFieldDropDownList 设置Value为ListItems 的属性:

<asp:DropDownList ID="DDL" runat="server" DataTextField="Text" DataValueField="Value" ... />
Run Code Online (Sandbox Code Playgroud)

在这里我还设置了项目DataTextFieldText属性.