c# - 从类中填充下拉列表

标签 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;

但我的下拉列表为空。您认为问题出在哪里?

我忘了放statedl.DataBind();现在可以使用了,谢谢。

最佳答案

我发现两个问题

1) 您指定了错误的 DataTextFieldDataValueField

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/

相关文章:

ASP.NET 页面重定向列表

c# - DbContext 丢弃更改而不处理

c# - 为什么我的复选框没有将它们的值传递给 ASP.NET Core 中的 Controller ?

c# - 有关更新行数据不起作用的功能

c# - 使用 Cookie 的购物车

javascript - 为什么我无法使用 JSON 数据?

C# 泛型委托(delegate)的异步调用

c# - 如何在触发时加载预制件以便我的游戏继续进行?

c# - 最小起订量返回方法未按预期工作

c# - 将字节数组从服务器传输到浏览器