我有一个下拉列表,需要存储比标准列表项更多的数据。我采用的方法是向每个列表项添加属性。
我监控更改并可以返回SelectedIndex,但不确定如何从那里获取属性,或者是否有更简单的方法来实现这一点。
你有什么想法吗?
我监控更改并可以返回SelectedIndex,但不确定如何从那里获取属性,或者是否有更简单的方法来实现这一点。
你有什么想法吗?
试一下这个:
ddl.SelectedItem.Attributes["key"];
ListItem
并将其添加到ddl中,然后我添加了ddl.Items [0] .Attributes.Add(“data”,“some data”);
。我添加了一个按钮,在单击事件中编写了:string a = ddl.SelectedItem.Attributes [“data”];
- 现在a
对我来说包含“some data”。 - banana我之前尝试过这样做,发现无法真正使用DropDownList属性。
我做的是:
创建一个包含KeyValuePair的列表。KeyValuePair中的键是您在DropDownList项中放置的相同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));
Dim dict As New Dictionary(Of Integer, String)
dict.Add(0, "data0")
dict.Add(1, "data1")
ViewState("DataDict") = dict
获取:
Dim dict As New Dictionary(Of Integer, String)(CType(ViewState("DataDict"), Dictionary(Of Integer, String)))
dict.Item(ddl.SelectedIndex)
- Matt Roy
item.Attributes.Add("value")
吗? - banana