2
ASP.NET中的每個ListItem都有一個值屬性和一個文本屬性。我還需要保存第三個值。我的破解是連接一個特殊的分隔符和Value屬性的第三個值。 但是使用FindByValue方法使得這個麻煩。如何在ASP.NET下拉列表的每個ListItem中保存第三個值?
有沒有更好的方法來保存第三個值或使用FindByValue的好方法。 (我不能使用FindByText)。我希望有一個標籤屬性。
ASP.NET中的每個ListItem都有一個值屬性和一個文本屬性。我還需要保存第三個值。我的破解是連接一個特殊的分隔符和Value屬性的第三個值。 但是使用FindByValue方法使得這個麻煩。如何在ASP.NET下拉列表的每個ListItem中保存第三個值?
有沒有更好的方法來保存第三個值或使用FindByValue的好方法。 (我不能使用FindByText)。我希望有一個標籤屬性。
如果您使用的是綁定DropDownList
,與DataTextField
和DataValueField
性質界定,有沒有真正節省了DropDownList
本身第三值的好方法。你可以單獨保存它。
如果你通過標記定義你DropDownList
,你可以嘗試將其定義爲一個自定義屬性:
<asp:DropDownList ID="ddlDummy" runat="server">
<asp:ListItem Text="x" Value="y" ThirdValue="z" />
</asp:DropDownList>
要檢索它,你可以使用FindByValue從列表項獲得ThirdValue
屬性:
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);
}
}
如果您遇到這種情況,你可以看看這個問題,給出了一個工作以防萬一:
ListItems attributes in a DropDownList are lost on postback?