Установить Radiobuttonlist, выбранный из Codebehind
Привет, у меня есть radioobuttonlist и вы пытаетесь установить одну из радиообъектов на выбранную на основе переменной сеанса, но это невозможно.
<asp:radiobuttonlist id="radio1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
<asp:listitem id="option1" runat="server" value="All"/>
<asp:listitem id="option2" runat="server" value="1" />
<asp:listitem id="option3" runat="server" value="2" />
</asp:radiobuttonlist>
I.e Как я могу установить опцию2 в выбранный код?
Ответы
Ответ 1
Вы можете сделать:
radio1.SelectedIndex = 1;
Но это самая простая форма и, скорее всего, станет проблематичной по мере роста вашего пользовательского интерфейса. Скажем, например, если член команды вставляет элемент в RadioButtonList
выше option2
, но не знает, что мы используем магические числа в кодировке для выбора - теперь приложение выбирает неверный индекс!
Возможно, вы захотите изучить FindControl, чтобы определить требуемый ListItem
по имени и правильному выбору. Например:
//omitting possible null reference checks...
var wantedOption = radio1.FindControl("option2").Selected = true;
Ответ 2
Лучшим вариантом, на мой взгляд, является использование свойства Value
для ListItem
, доступного в RadioButtonList
.
Я должен заметить, что ListItem
имеет свойство НЕ иметь свойство ID.
Итак, в вашем случае, чтобы выбрать второй элемент (option2), который будет:
// SelectedValue expects a string
radio1.SelectedValue = "1";
В качестве альтернативы, но в той же самой форме вы можете указать int в SelectedIndex.
// SelectedIndex expects an int, and are identified in the same order as they are added to the List starting with 0.
radio1.SelectedIndex = 1;
Ответ 3
Попробуйте эту опцию:
radio1.Items.FindByValue("1").Selected = true;
Ответ 4
var rad_id = document.getElementById('<%=radio_btn_lst.ClientID %>');
var radio = rad_id.getElementsByTagName("input");
radio[0].checked = true;
//this for javascript in asp.net try this in .aspx page
//если вы выберете другое увеличение радиообмена [0] - [1] или [2], как этот
Ответ 5
Мы можем изменить элемент по значению, вот трюк:
radio1.ClearSelection();
radio1.Items.FindByValue("1").Selected = true;// 1 is the value of option2