gpt4 book ai didi

asp.net - 如何在 ASP.NET 下拉列表的每个 ListItem 中保存第三个值?

转载 作者:行者123 更新时间:2023-12-01 01:11:58 25 4
gpt4 key购买 nike

ASP.NET 中的每个 ListItem 都有一个 value 属性和一个 text 属性。我还需要保存第三个值。我的技巧是将特殊分隔符和第三个值连接到 Value 属性。
但是使用 FindByValue 方法会很麻烦。

有没有更好的方法来保存第三个值或使用 FindByValue 的好方法。 (我不能使用 FindByText)。我希望有一个标签属性。

最佳答案

如果您使用绑定(bind)的 DropDownList ,用 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);
}
}

如果这是你的情况,你可以看看这个问题,它可以解决问题:

ListItems attributes in a DropDownList are lost on postback?

关于asp.net - 如何在 ASP.NET 下拉列表的每个 ListItem 中保存第三个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com