Asp.net RadioButtonList的OnSelectedIndexChanged事件未触发

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.net中有一个RadioButton列表。我正在尝试做一件简单的事情,即在更改列表中的单选按钮时显示或隐藏div。但SelectedIndexChanged上的事件没有触发。我不明白原因。这是密码

<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 NOT
OnSelectedIndexChanged
it
onchange
:什么是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>