Не отмеченный RadioButtonList не запускает SelectedIndexChanged

У меня есть RadioButtonList с некоторым фиксированным элементом и выбранным по умолчанию. Если я сниму флажок с помощью javascript, при обратной передаче событие SelectedIndexChanged не запускается.

Я ожидал, что SelectedIndexChanged вызывается, потому что индекс изменился на -1.

это код Asp.Net

<asp:RadioButtonList ClientIDMode="Static" ID="RadioButtonList1" runat="server" 
    onselectedindexchanged="RadioButtonList1_SelectedIndexChanged">
    <asp:ListItem Value="1" Selected="True"></asp:ListItem>
    <asp:ListItem Value="2"></asp:ListItem>
</asp:RadioButtonList>

и код jquery

$('#RadioButtonList1 :radio:visible').attr('checked', false);

Насколько мне известно, этап сбора данных из отправки формы обрабатывается методом IPostBackDataHandler.LoadPostData.

Я унаследовал класс от RadioButtonList, чтобы проверить, когда вызывается LoadPostData, и заметил, что когда не выбран переключатель, метод не вызывается, и то же самое для события SelectedIndexChanged.

кажется, что если ключ RadioButtonList отсутствует в массиве Page.Request.Form.Keys, LoadPostData не вызывается.

Любая помощь приветствуется.


person Luca Cestola    schedule 04.04.2011    source источник


Ответы (1)


Попробуйте установить AutoPostBack="true"

Пример:

<asp:RadioButtonList ClientIDMode="Static" ID="RadioButtonList1" runat="server" 
    onselectedindexchanged="RadioButtonList1_SelectedIndexChanged" AutoPostBack="true">
    <asp:ListItem Value="1" Selected="True"></asp:ListItem>
    <asp:ListItem Value="2"></asp:ListItem>
</asp:RadioButtonList>

Согласно документации MSDN:

Возвращает или задает значение, указывающее, происходит ли автоматическая обратная передача на сервер, когда пользователь изменяет выбор в списке. (Унаследовано от ListControl.)

person Abe Miessler    schedule 04.04.2011
comment
Хорошо, попробовал, но результат тот же. Pheraps проблема не в том, как происходит обратная передача, а в том, как она обрабатывается на стороне сервера. - person Luca Cestola; 05.04.2011
comment
Проблема с предложенным вами решением заключается в том, что при снятии флажка с переключателя с помощью javascript обратная передача не происходит. - person Luca Cestola; 06.04.2011