如何调用由枚举生成的列表并将其绑定到下拉列表
本文关键字:列表 下拉列表 绑定 何调用 调用 枚举 | 更新日期: 2023-09-27 18:29:11
所以我有一个类文件,其中包含:
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;
}
}
然后我的主页上有一个下拉列表:
protected void Page_Load(object sender, EventArgs e)
{
ddlSize.Items.Add(GetSize);
}
但这不起作用,因为Page_Load GetSize在当前上下文中不存在。我已经参考了这个文件。那么,我该如何用我的列表GetSize()
我看到两件事:
1) 您正在向列表中添加一个方法,而不是该方法的结果:
2) 您的方法返回一个List<KeyValuePair<int, string>>
,这很好,但您将这些对象直接添加到下拉列表中,这将不会显示我认为您期望的结果。
我会使用接受密钥和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()) ;
}
}
您应该将方法的结果DataBind到DropDownList
ddlSize.DataSource = TerritoryServices.GetSize();
ddlSize.DataTextField = "Value";
ddlSize.DataValueField = "Key";
ddlSize.DataBind();