我有一个下拉列表,我需要存储比标准列表项允许的更多数据。我采用的方法是为每个列表项添加一个属性。
我监视更改并可以返回SelectedIndex,但我不确定如何从那里获取属性,或者是否有更简单的方法来实现此目的。
有什么想法吗?
答案 0 :(得分:10)
试试这个:
ddl.SelectedItem.Attributes["key"];
答案 1 :(得分:2)
我曾经尝试过这次,我想我无法真正使用DropDownList属性的属性。
我做的是以下内容:
创建包含 KeyValuePair 的列表。 KeyValuePair中的Key与放入DropDownList Item中的ID相同。
KeyValuePair的值是您希望保留/连接项目的值(或多个值)。
您可以将List存储在viewState中,并在DropDownList中选择项目后读取数据,并使用ID找到正确的KeyValuePair。
所以你可以“存储”这样的数据:
var listKeyValuePair = new List<KeyValuePair<int, string>>();
listKeyValuePair.Add(new KeyValuePair<int, string>(1, "data"));
ViewState["DataList"] = listKeyValuePair;
你可以得到这样的数据:
var listKeyValuePair = (List<KeyValuePair<int, string>>)ViewState["DataList"];
var dataILikeToHave = listKeyValuePair.Find(k => k.Key == Convert.ToInt16(dropDownlist.SelectedItem.Value));