asp.net-ajax – ASP.Net AJAX UpdatePanel无法触发SelectedInde
我有一个ASP.Net RadioButtonList控件,AutoPostBack设置为true.我还有一个OnSelectedIndexChanged函数,只要用户更改选择就会调用该函数.最后,用户需要提供此控件所需的信息,因此当用户到达页面时,我有一个默认选择 –
<asp:RadioButtonList ID="rblHighestDegree" runat="server" AutoPostBack="true" onselectedindexchanged="rblHighestDegree_SelectedIndexChanged"> <asp:listitem Runat="server" Text="Master's Degree" Selected="True" /> <asp:listitem Runat="server" Text="Doctorate" /> </asp:RadioButtonList> 在上面的代码示例中,当用户从默认选择(例如,“Master’s Degree”)切换到不同选项(例如,“Doctorate”)时,则触发SelectedIndexChanged事件.然后,如果用户改变主意,然后选择原始默认选项,则再次触发SelectedIndexChanged事件.这完全符合预期和预期. 我有第二个控件,根据上面的选择启用或禁用代码隐藏… <asp:ScriptManager ID="scriptmanager1" runat="server" /> <asp:UpdatePanel ID="updatepanel1" runat="server"> <ContentTemplate> <asp:RadioButtonList ID="rdlYearsOfStudy" runat="server" Enabled="false"> <asp:listitem Runat="server" Text="Less than 3 years" /> <asp:listitem Runat="server" Text="3 - 4 years" /> <asp:listitem Runat="server" Text="5 - 6 years" /> </asp:RadioButtonList> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="rblHighestDegree" EventName="SelectedIndexChanged" /> </Triggers> </asp:UpdatePanel> 只有在我将第二个控件放在ASP.Net AJAX UpdatePanel中才能启用异步回发(如上所示)之后,我才会遇到这个问题.一旦我这样做,原始的RadioButtonList控件将仅在我选择当用户到达页面时未默认选择的ListItem时回发.如果用户随后选择原始默认选择,则不会发生回发. 为了澄清,如果我回发而不将适用的第二个控件放在ASP.Net AJAX UpdatePanel中,那么无论用户选择哪个RadioButtonList ListItem,SelectedIndexChanged都可以工作.另一方面,在将控件放在UpdatePanel中以应用AsyncPostBackTrigger之后,回发仅针对非默认ListItem的选择. 可能相关的更多信息是我使用Microsoft Visual Studio 2008进行编码,而我正在使用的UpdatePanel控件是Microsoft AJAX Libary(不是ASP.NET AJAX Control Toolkit)的一部分. 我非常感谢有关如何使ASP.Net AJAX工作的任何见解,以便当用户选择RadioButtonList中的默认或非默认ListItem时,我可以触发SelectedIndexChanged事件.为了记录,我尝试在page_load事件中设置RadioButtonList默认选择,但它没有帮助. 在此先感谢您的帮助! 解决方法
我遇到了同样的问题,发现生成的HTML在默认选择中没有点击处理程序.列表中的其他单选按钮都有点击处理程序来调用__doPostBack.所以我添加了一些jQuery:
$("#rbl input[checked]").click(function (e) { var id = e.target.id.replace('_','$'); setTimeout(function () { __doPostBack(id,""); },0); }); 但是,即使ajax调用现在按预期工作,服务器端代码仍然没有执行selectedIndexChanged处理程序. 认为这可能是因为服务器知道默认选择是什么(并且)并且看到发布的选择是相同的,因此认为所选索引没有改变,因此没有执行处理程序. 然后我想当选择其中一个无线电时,服务器应该记住通过视图状态.这让我记得我在radiobuttonlist的容器上有viewstatemode =“Disabled”.所以我在radiobuttonlist上设置了viewstatemode =“Enabled”,它现在按预期工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Visual Studio 2012 ASP.NET MVC连接字符串
- asp.net-mvc – 从OWIN身份验证中间件中考虑控制器属性
- 如何在asp经典中使用cURL发布数据?
- asp.net-mvc – ASP.NET MVC将表单值传递给action方法
- asp.net-mvc-3 – 什么冒号(:)意味着在c#中定义一个类?
- asp.net – IIS错误 – HTTP错误500.24 – 内部服务器错误
- asp.net-mvc – ASP.NET MVC获取上次添加记录的ID
- asp.net-mvc-3 – MVC3:EF Code First和身份验证
- ASP.NET:使用混合的HTML格式本地化内容
- asp-classic – 找出真正的文件类型
- asp.net-mvc – 在nopcommerce 2.8中使用Telerik
- asp.net-mvc – ASP.Net MVC:控制器中的访问验证
- asp.net-mvc – MVC 4 Web API – 复合键的路由
- asp.net-mvc-4 – SimpleMembershipProvider:we
- asp.net – 分析器错误消息:无法生成代码.抛出了
- asp.net-mvc-2 – 我可以从global.asax重定向到控
- 强制ASP.NET GridView的寻呼机显示
- asp.net-mvc – 数以千计的重定向不好SEO?
- .net – 如何使用LINQ创建IQueryable类型的匿名对
- 将ASP.NET MVC4应用程序部署到GoDaddy编译器问题