Asp.net RadioButtonList的OnSelectedIndexChanged事件未触发
我在asp.net中有一个RadioButton列表。我正在尝试做一件简单的事情,即在更改列表中的单选按钮时显示或隐藏div。但SelectedIndexChanged上的事件没有触发。我不明白原因。这是密码Asp.net RadioButtonList的OnSelectedIndexChanged事件未触发,asp.net,radiobuttonlist,selectedindexchanged,Asp.net,Radiobuttonlist,Selectedindexchanged,我在asp.net中有一个RadioButton列表。我正在尝试做一件简单的事情,即在更改列表中的单选按钮时显示或隐藏div。但SelectedIndexChanged上的事件没有触发。我不明白原因。这是密码 <asp:RadioButtonList ID="CityStateZip" runat="server" ForeColor="#333300" AutoPostBack="true" RepeatDirection="Horizontal" Width="274px" Caus
<asp:RadioButtonList ID="CityStateZip" runat="server" ForeColor="#333300" AutoPostBack="true" RepeatDirection="Horizontal" Width="274px" CausesValidation="true" ValidationGroup="SchoolSearchGroup" OnSelectedIndexChanged="CityStateZip_SelectedIndexChanged">
<asp:ListItem Value="1" Text="City and State" />
<asp:ListItem Value="2" Text="Zip Code" />
</asp:RadioButtonList>
<div id="zipcodediv" runat="server" visible="false" style="margin-left:75px">
code.........
</div>
<div id="citystatediv" runat="server" style="margin-left:75px; width: 708px;">
code........
</div>
这是您在客户端执行的操作
在head标记中添加JQuery脚本文件,并在此处添加javascript函数名(selectValue)
测试代码:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
function selectValue() {
if (document.getElementById("CityStateZip_0").checked == true) {
$("#divOne").show(100);
$("#divTwo").hide(100);
}
if (document.getElementById("CityStateZip_1").checked == true) {
$("#divOne").hide(100);
$("#divTwo").show(100);
}
}
</script>
函数selectValue(){
if(document.getElementById(“CityStateZip_0”).checked==true){
元(100元);
$(“#divTwo”).hide(100);
}
if(document.getElementById(“CityStateZip_1”).checked==true){
$(“#divOne”).hide(100);
元(100元);;
}
}
Html-Marup:
<div>
<asp:RadioButtonList ID="CityStateZip" runat="server" onchange="return selectValue();"
RepeatDirection="Horizontal">
<asp:ListItem Value="1" Selected="True">City and State</asp:ListItem>
<asp:ListItem Value="2">Zip Code</asp:ListItem>
</asp:RadioButtonList>
</div><br /><br />
<div id="divOne">
<h3>Div one...</h3>
Enter your City State content
</div>
<div id="divTwo">
<h3>Div two...</h3>
Enter you Zip code content
</div>
城市与国家
邮政编码
第一组。。。
输入您所在城市的州内容
第二组。。。
输入您的邮政编码内容
我猜您可以将放置在div中的控件的可见性设置为false。如果是,请将其删除,然后重试。如果没有,那么如果您也将您放在div中的代码发布,这将很有帮助,因为您的代码中没有任何其他错误,因此问题一定在div中。尝试将CausesValidation更改为“false”,如果有任何验证问题。虽然我同意大多数答案,如果这只是您试图做的事情,那么您应该在客户端做。然而,如果您正在做一些更复杂的需要服务器端操作的事情,那么首先需要弄清楚为什么没有调用您的函数。虽然我不是这方面的专家,但我首先要看的是受保护呼叫。将此更改为public可能对您有用。我所看到的其他一切似乎都井然有序。我给你的另一条建议是检查你的函数是否真的被调用,就是做一些非常简单的事情,在你的情况下,我会取出if语句,看看这是否有效:
zipcodediv.Visible=false;
citystatediv.Visible=true
每当有什么东西没有被触发,或者当我想知道函数在什么时候被触发或遇到问题时,我就使用这种技术。我遇到了与您相同的问题,并通过将
AutoPostBack=“true”
添加到我的RadioButtonList
在ASPX中的定义中来修复它。看起来你的定义中已经有了,但对于在此之后来到这里的任何其他人来说,这可能就是你所需要的。向我们展示如何绑定RadioButton列表的代码你可以使用Jquery创建此客户端/Javascript@satinder辛格,谢谢。但是由于某些原因,我不能使用jquery/js@sami:仅为了隐藏而加载页面不是一个好的做法divs@sami,我检查了您的代码,它工作正常。:)谢谢satinder singh。但是OnSelectedIndexChanged=“return dataSelect()”显示了一些错误(解析错误)。我尝试使用分号,就像您的代码一样,它也显示了相同的错误。@sami:it NOTOnSelectedIndexChanged
itonchange
:什么是ContentPlaceholder 1\u CityStateZip\u 0和ContentPlaceholder 1\u CityStateZip\u 1是您的项目ContentPlaceholder 1\u CityStateZip\u 0
即城市和州,而ContentPlaceholder 1\u CityStateZip\u 1是邮政编码。ContentPlaceholder 1因为它是在ContentPlaceholder 1标记下使用的,如果条件不起作用,则使用这两个标记。您能为相同的情况提出任何其他建议吗?感谢您的出色合作。由于为ASPX页面生成的类扩展了代码隐藏的类,受保护的
是合适且首选的,除非存在(n不明智的)还需要将该处理程序公开给其他类。在我的例子中,我在方法的顶部设置了一个断点,但仍然没有让调试器停止在那里。事实上,在RadioButtonList
中选择一个新项目时,页面加载根本不会发生。嗯。[更新:在我将AutoPostBack=“true”
添加到ASPX中的控件后,它就开始对我起作用。]
<div>
<asp:RadioButtonList ID="CityStateZip" runat="server" onchange="return selectValue();"
RepeatDirection="Horizontal">
<asp:ListItem Value="1" Selected="True">City and State</asp:ListItem>
<asp:ListItem Value="2">Zip Code</asp:ListItem>
</asp:RadioButtonList>
</div><br /><br />
<div id="divOne">
<h3>Div one...</h3>
Enter your City State content
</div>
<div id="divTwo">
<h3>Div two...</h3>
Enter you Zip code content
</div>