Подтвердить что ты не робот

Установить 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 в выбранный код?

4b9b3361

Ответ 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