加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 06:23:12 所属栏目:asp.Net 来源:网络整理
导读:ASP.NET中的每个ListItem都有一个value属性和一个text属性.我还需要保存第三个值.我的hack是将一个特殊的分隔符和第三个值连接到Value属性. 但是使用FindByValue方法会让这很麻烦. 是否有更好的方法来保存第三个值或使用FindByValue的好方法. (我不能使用Fin
ASP.NET中的每个ListItem都有一个value属性和一个text属性.我还需要保存第三个值.我的hack是将一个特殊的分隔符和第三个值连接到Value属性.
但是使用FindByValue方法会让这很麻烦.

是否有更好的方法来保存第三个值或使用FindByValue的好方法. (我不能使用FindByText).我希望有一个Tag属性.

解决方法

如果您使用的是使用DataTextField和DataValueField属性定义的绑定DropDownList,那么在DropDownList本身上保存第三个值并不是一个好方法.你可以单独保存它.

如果您通过标记定义DropDownList,则可以尝试将其定义为自定义属性:

<asp:DropDownList ID="ddlDummy" runat="server">
    <asp:ListItem Text="x" Value="y" ThirdValue="z" />
</asp:DropDownList>

要检索它,您可以使用FindByValue并从ListItem获取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?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读