ASP.NET下拉列表自定义属性

时间:2014-05-02 14:31:12

标签: c# asp.net

我正在为此下拉列表添加自定义属性,

 <asp:DropDownList ID="ddlFirst" runat="server" ClientIDMode="Static"></asp:DropDownList>

在我正在添加自定义属性

的代码中
ListItem deleteMeLi = new ListItem("Mango", "");
deleteMeLi.Attributes.Add("data-IsMangoRotten", "0");
ddlFirst.Items.Add(deleteMeLi);

现在,当我试图像这样获得价值时,

 int rottenM = Convert.ToInt32(ddlFirst.SelectedItem.Attributes["data-IsMangoRotten"].ToString());

它抛出对象是空的预期,

调试时我发现ddlFirst的属性数是0,但是在HTML中我可以看到使用开发人员工具的属性

2 个答案:

答案 0 :(得分:2)

问题是DropDownList在客户端呈现为<select>元素,因此,您无法在HTML中向<option>元素添加属性并在其上检索它服务器端,因为它们没有发布。当然,您可以通过普通的Javascript在客户端访问它们,但不要将它们发布到服务器上。

答案 1 :(得分:0)

您的示例可以自行运行。

我怀疑您在将deleteMeLi添加到ddlFirst之前尝试获取SelectedItem的属性,因此您尝试获取null对象的属性并获取异常。

检查在页面生命周期中何时添加ListItem以及何时尝试获取属性值。