当通过javascript设置值时,RadioButtonList不会在后续更改事件中触发

当通过javascript设置值时,RadioButtonList不会在后续更改事件中触发,javascript,c#,asp.net,events,Javascript,C#,Asp.net,Events,我有一个RadioButtonList,其中有两个选项作为列表项,其中一个是server OnSelectedIndexChanged事件,另一个是clientside onchange事件。标记代码如下所示: <asp:RadioButtonList ID="rdViewSelection" runat="server" RepeatDirection="Horizontal" AutoPostBack="true" OnSelectedInde

我有一个RadioButtonList,其中有两个选项作为列表项,其中一个是server OnSelectedIndexChanged事件,另一个是clientside onchange事件。标记代码如下所示:

<asp:RadioButtonList ID="rdViewSelection" 
         runat="server" RepeatDirection="Horizontal" AutoPostBack="true"
           OnSelectedIndexChanged="rdoSelection_SelectedIndexChanged"    
           onchange="SelectedIndexChanged();">
       <asp:ListItem Enabled="true" Selected="True" 
            Text="1" Value="1"</asp:ListItem>
      <asp:ListItem Enabled="true" Selected="False" 
            Text="2" Value="2"></asp:ListItem>
</asp:RadioButtonList>
function SelectedIndexChanged() {
    var rdoSelection = document.getElementById("<%=rdoSelection.ClientID%>");
     for (var i = 0; i < rdoSelection.cells.length; i++) {
         for (var x = 0; x < rdoSelection.cells[i].all.length; x++) {
             if (rdoSelection.cells[i].all[x].checked) {
                 // Store value in Hidden Field
                 document.getElementById("<%=SelectedValue.ClientID%>").value = rdoSelection.cells[i].all[x].defaultValue;
             }
         }
     }
 }
function ChangeSelectedIndex()
{
    rdoSelection.cells[1].childNodes[0].checked = true;
}
当通过从LinkedButton调用的客户端代码更改RadioButtonList的选定节点时,页面上的值将成功更改,并触发服务器OnSelectedIndexChanged事件

但是,如果我手动单击未选中的节点(在第一次编程更改之后),则不会调用服务器端OnSelectedIndexChanged方法。但在此之后执行的任何选择更改都会成功调用服务器事件。就好像第一次手动更改(在客户端方法以编程方式处理更改之后)作为服务器端事件被忽略一样。之后的任何手动更改都会与服务器同步

我如何确保RadioButtonList的每个更改事件都会触发服务器端的OnSelectedIndexChanged事件?为什么通过Javascript更改选定索引会导致第二次手动更改无效,之后功能会恢复


所有这些控件都位于UserControl内部。

如果不设置RepeatDirection,它应该工作

你能详细说明你的答案吗?再加上一点关于你提供的解决方案的描述?