我的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();它现在有效了。
答案 0 :(得分:3)
我看到两个问题
1)您指定了错误的DataTextField
和DataValueField
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