標準のリストアイテムで許可されているよりも多くのデータを保存する必要があるドロップダウンリストがあります。私が採用したアプローチは、各リストアイテムに属性を追加することです。
変更を監視してSelectedIndexを返すことはできますが、そこから属性を取得する方法や、これを実現するためのより簡単な方法があるかどうかはわかりません。
何か案は?
標準のリストアイテムで許可されているよりも多くのデータを保存する必要があるドロップダウンリストがあります。私が採用したアプローチは、各リストアイテムに属性を追加することです。
変更を監視してSelectedIndexを返すことはできますが、そこから属性を取得する方法や、これを実現するためのより簡単な方法があるかどうかはわかりません。
何か案は?
これを試して:
ddl.SelectedItem.Attributes["key"];
私は以前にこれを一度試しましたが、DropDownList属性の属性を実際に使用することはできないと思いました。
私がしたことは次のとおりでした:
KeyValuePairを含むリストを作成します。KeyValuePairのキーは、DropDownListアイテムに入力したものと同じIDです。
KeyValuePairの値は、アイテムに保持/接続する1つまたは複数の値です。
ドロップダウンリストでアイテムを選択し、IDを使用して適切なKeyValuePairを見つけたら、リストを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));