我的 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;
但我的下拉列表为空。您认为问题出在哪里?
我忘了放statedl.DataBind();现在可以使用了,谢谢。
最佳答案
我发现两个问题
1) 您指定了错误的 DataTextField
和 DataValueField
2)您可能永远不会绑定(bind)数据源
用这个代替
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
关于c# - 从类中填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640130/