7

我有一个下拉列表,我需要在其中存储比标准列表项允许的更多的数据。我采用的方法是为每个列表项添加一个属性。

我监视更改并可以返回 SelectedIndex,但我不确定如何从那里取回属性,或者是否有更简单的方法来实现这一点。

有任何想法吗?

4

2 回答 2

10

尝试这个:

ddl.SelectedItem.Attributes["key"];
于 2013-02-12T11:38:22.067 回答
2

我之前确实尝试过一次,但我认为我无法真正使用 DropDownList 属性上的属性。

我所做的是以下内容:

创建一个包含KeyValuePair的列表。KeyValuePair 中的键与您放入 DropDownList 项中的 ID 相同。

KeyValuePair 的值是您希望与您的项目保持/连接的值(或多个值)。

一旦您在 DropDownList 中选择了一个项目并使用 ID 找到正确的 KeyValuePair,您就可以将 List 存储在您的 viewState 中并读取数据。

所以你可以像这样“存储”数据:

    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));
于 2013-02-12T14:35:59.717 回答