从课堂填充下拉列表

时间:2014-02-08 00:18:34

标签: c# asp.net

我的aspx页面(州,年,日,月)有几个静态asp.net下拉列表。我喜欢创建一个类和值列表,而不是在我的页面中拥有所有这些,调用该类来填充下拉列表 这是我需要填充的状态下拉列表:

<asp:ListItem value="">State</asp:ListItem>
<asp:ListItem value="">Select</asp:ListItem>
<asp:ListItem value="AL" >Alabama</asp:ListItem>
<asp:ListItem value="AK" >Alaska</asp:ListItem> ....

我创建了这个类:

public class State
{
    public string StateValue { get; set; }
    public string StateName { get; set; }

    public List<State> StateList()
    { 
        return new List<State> 
        { 
            new State{StateValue="",StateName="Select" }
            ,new State{StateValue="AL",StateName="Alabama"}
            ,new State{StateValue="AK",StateName="Alaska"}
        }
    };
}

在我的页面中,我将这个类称为:

State state = new State();
stateddl.DataSource = state.StateList().ToList();
stateddl.DataTextField = state.StateName;
stateddl.DataValueField = state.StateValue;

但是我得到了空的下拉菜单。您认为这是一个问题?

我忘了把stateddl.DataBind();它现在有效了。

1 个答案:

答案 0 :(得分:3)

我看到两个问题

1)您指定了错误的DataTextFieldDataValueField

2)您可能永远不会绑定数据源

改为使用

stateddl.DataSource = state.StateList(); // No need to use ToList()
stateddl.DataTextField = "StateName"; // Specify the name of the text field
stateddl.DataValueField = "StateValue"; // Specify the name of the value field
stateddl.DataBind(); // <-- Bind the data source