C# 如何调用由枚举组成的列表并将其绑定到下拉列表?
因此,我有一个类文件:C# 如何调用由枚举组成的列表并将其绑定到下拉列表?,c#,asp.net,list,enums,C#,Asp.net,List,Enums,因此,我有一个类文件: public enum Size { Large = 1, Medium = 2, Small = 3 } public static class Serv { public static List<KeyValuePair<int, string>> GetSize() { List<KeyV
public enum Size
{
Large = 1,
Medium = 2,
Small = 3
}
public static class Serv
{
public static List<KeyValuePair<int, string>> GetSize()
{
List<KeyValuePair<int, string>> _size = new List<KeyValuePair<int, string>>();
foreach (var enm in Enum.GetValues(typeof(Size)))
{
_size.Add(new KeyValuePair<int, string>((int)enm, ((Size)enm).ToString()));
}
return _size;
}
}
但这不起作用,因为在页面中,当前上下文中不存在加载GetSize。我引用了这个文件。那么,我如何用我的list GetSize()填充下拉列表呢?您应该将方法的结果添加到DropDownList中
ddlSize.DataSource = TerritoryServices.GetSize();
ddlSize.DataTextField = "Value";
ddlSize.DataValueField = "Key";
ddlSize.DataBind();
我看到两件事:
1) 您正在向列表中添加方法,而不是该方法的结果:
2) 您的方法返回一个列表
,这很好,但是您可以将这些对象直接添加到下拉列表中,这不会显示我认为您期望的结果
我将使用接受密钥和vlue的重载分别添加这些项:
protected void Page_Load(object sender, EventArgs e)
{
foreach (KeyValuePair<int, string> kvp in GetSize())
{
ddlSize.Items.Add(New ListItem(kvp.Value.ToString(), kvp.Key.ToString()) ;
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
foreach(GetSize()中的KeyValuePair kvp)
{
ddlSize.Items.Add(新列表项(kvp.Value.ToString(),kvp.Key.ToString());
}
}
什么是“不起作用”意思?您如何添加方法do items?通过“不起作用”,我的意思是GetSize在当前上下文中不存在。是的,我在标题中引用了它。也许您应该正确地调用它?ddlSize.items.Add(TerritoryServices.GetSize());我有点明白你的意思。但BCdotNets的答案正是我所需要的。我会让你试试。谢谢。数据绑定也很有效。很高兴它为你工作。
protected void Page_Load(object sender, EventArgs e)
{
foreach (KeyValuePair<int, string> kvp in GetSize())
{
ddlSize.Items.Add(New ListItem(kvp.Value.ToString(), kvp.Key.ToString()) ;
}
}