Очень простая страница веб-формы asp.net.Не удается сохранить пользовательские атрибуты в DOM?
<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 «выбрать» атрибуты?
Но как я могу решить эту проблему? Мне нужен пользовательский атрибут. –
Ну, вы можете добавить атрибут во время разработки. Если значение может измениться, добавьте атрибут каждый раз, когда выполняется страница (т. Е. В сценарии после обратной связи). Если вам нужно сделать это много раз, я предлагаю вам написать настраиваемые элементы управления (унаследованные из раскрывающегося списка say) или пользовательские элементы управления (содержащие раскрывающийся список say), добавить код для сохранения пользовательских атрибутов в режиме view-state (переопределение методов LoadViewState и SaveViewState). – VinayC