当通过javascript设置值时,RadioButtonList不会在后续更改事件中触发
我有一个RadioButtonList,其中有两个选项作为列表项,其中一个是server OnSelectedIndexChanged事件,另一个是clientside onchange事件。标记代码如下所示:当通过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
<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,它应该工作 你能详细说明你的答案吗?再加上一点关于你提供的解决方案的描述?