所以我有一个类文件:
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()
来填充下拉列表答案 0 :(得分:2)
我看到两件事:
1)您要在列表中添加方法,而不是该方法的结果:
2)你的方法返回一个List<KeyValuePair<int, string>>
,这很好,但你直接将这些对象添加到你的下拉列表中,这不会显示结果我认为你是期待。
我会使用接受密钥和线索的重载来单独添加项目:
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()) ;
}
}
答案 1 :(得分:1)
您应该将方法的结果DataBind发送到DropDownList
ddlSize.DataSource = TerritoryServices.GetSize();
ddlSize.DataTextField = "Value";
ddlSize.DataValueField = "Key";
ddlSize.DataBind();