Очень простая страница веб-формы 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 "выбирает" атрибуты?