RadioButtonList中的默认项(Selected)不触发OnSelectedIndexChanged
RadioButtonList的数据从后台来绑定,绑定后,给个默认选中的值。
前台写法:<asp:RadioButtonList ID="radlMy" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" RepeatLayout="Flow" OnSelectedIndexChanged="radlMy_SelectedIndexChanged" AutoPostBack="true">
</asp:RadioButtonList>
假设这个RadioButtonList控件现在有有3个选项,“按天统计”,“按月统计”,“按年统计”,按天统计时默认选中。
此控件配合UpdatePanel使用,进行异步刷新。
只要所选项一变化,就执行OnSelectedIndexChanged查询数据。
好,现在页面载入完成,进行测试:
首先点击:“按月查询” --正常查询。
再点击:“按年统计” --正常查询数据
最后点击:“按天统计” --无反应了
为什么默认选中的始终不能触发查询事件?
原因很简单,因为与updatepanel控件搭配使用,单击事件后,局部刷新了 GridView数据区域,却没有刷新RadioButtonList控件自身,
导致第一个选中项始终处于选中状态,所以不能触发单击事件了。
所以解决方案是添加一个UpdatePanel,将RadioButtonList控件至于其中,用于回发RadioButtonList控件的OnSelectedIndexChanged事件。
参考:http://social.msdn.microsoft.com/Forums/zh/295/thread/c31b2574-14c9-4096-8870-420bff357684