ASP.NETの各ListItemには、valueプロパティとtextプロパティがあります。3番目の値も保存する必要があります。私のハックは、特別な区切り文字と3番目の値をValueプロパティに連結することです。ただし、FindByValueメソッドを使用すると、これが面倒になります。
3番目の値を保存するためのより良い方法またはFindByValueを使用するための良い方法はありますか。(FindByTextは使用できません)。Tagプロパティがあればいいのにと思います。
ASP.NETの各ListItemには、valueプロパティとtextプロパティがあります。3番目の値も保存する必要があります。私のハックは、特別な区切り文字と3番目の値をValueプロパティに連結することです。ただし、FindByValueメソッドを使用すると、これが面倒になります。
3番目の値を保存するためのより良い方法またはFindByValueを使用するための良い方法はありますか。(FindByTextは使用できません)。Tagプロパティがあればいいのにと思います。
andプロパティDropDownList
で定義されたbindを使用している場合、3番目の値をそれ自体に保存する良い方法はありません。別々に保存することができます。DataTextField
DataValueField
DropDownList
マークアップを使用して定義している場合DropDownList
は、カスタム属性として定義してみてください。
<asp:DropDownList ID="ddlDummy" runat="server">
<asp:ListItem Text="x" Value="y" ThirdValue="z" />
</asp:DropDownList>
それを取得するには、FindByValueを使用ThirdValue
して、ListItemから属性を取得できます。
ListItem item = ddlDummy.Items.FindByValue("y");
string value = item.Attributes["ThirdValue"];
ただし、奇妙なことに、アイテムを動的に生成すると、属性は永続化されません。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
ListItem item = new ListItem("x", "y");
item.Attributes.Add("ThirdValue", "z");
ddlDummy.Items.Add(item);
}
}
これがあなたの場合であるならば、あなたは回避策を与えるこの質問を見ることができます: