【发布时间】:2010-09-07 08:39:20
【问题描述】:
一个非常简单的 asp.net 网页。
<asp:DronDownList id="ddl" runat="server">
<asp:Button id="btn" runat="server" Text="Do nothing but post back" />
在 Page_Load 中:
if (!IsPostBack)
{
ListItem item = new ListItem("text1","value1");
item.Attributes["custom"] = "CustomValue";
ddl.Items.Add(item);
}
它呈现的html:(看起来不错)
<select ...>
<option value="value1" custom="CustomValue">text1</option>
</select>
点击按钮后,查看源码,custom="CustomValue" 不见了。
我知道你会说“这是因为你把它放在了if (!IsPostBack) 块中”。当然,如果我删除 if 语句,一切都会好起来的。但是为什么要渲染其他 STANDARD 属性呢?由于我把它放在if 语句中,我想输出将是:
<select ...></select> // i suppose no options in it!
为什么 ASP.NET “选择”属性?
【问题讨论】:
标签: c# javascript asp.net browser viewstate