C # ASP.Net Datalist и HTML-радио кнопки
-
11-12-2019 - |
Вопрос
Мой сайт имеет управление изменением языка, поэтому, когда нажал язык, я перезагружаю той же страницы, но с другим языком текста, и если пользователь уже имеет поле в форме, я должен перезагрузить данные.
Мне удалось перезагрузить данные в флажки, TextBox, но не с Radio Botton
Пожалуйста, смотрите мой код
У меня есть DataList и переключатель внутри.
<asp:DataList runat="server" ID="dlRole">
<ItemTemplate>
<input type="radio" id="rblRole" name="rblRole" value='<%# Eval("RoleCode") %>' />
<asp:Label ID="lbRole" runat="server" Text='<%# Eval("Description")%>'></asp:Label>
</ItemTemplate>
</asp:DataList>
.
Я загружаю DataList, радио кнопки
dlRole.DataSource = ...
dlRole.DataBind();
.
Я сохраняю значение радиопередачи в объект сеанса пользователя
user.Role = Request["rblRole"];
.
Но когда я перезагружаю сохраненного объекта в радиопередачу, он не может найти контроль объекта радиоуправления .... Переключатель всегда нулевой.И я не уверен, почему
foreach (DataListItem item in dlRole.Items)
{
HtmlInputRadioButton radio = (item.FindControl("rblRole") as HtmlInputRadioButton);
if (radio != null) <--- always nulll
{
if (radio.Value == user.Role.ToString())
{
radio.Checked = true;
}
else
radio.Checked = false;
}
}
.
Пожалуйста, дайте мне знать, как исправить это Спасибо
Решение
Вам нужно добавить
runat="server"
.
на вашей кнопке радио, в противном случае она не будет доступна из кода позади.