【发布时间】:2016-10-10 19:39:26
【问题描述】:
我面临一个问题,即第一个单选按钮的选中更改事件未触发。我启用了ViewState,但问题仍然存在。请看以下代码:
<span class="pull-right text-right">
<label class="inline radio">
<asp:RadioButton runat="server" ID="rdoViewAll" CausesValidation="false" GroupName="Filter" Text="View All" AutoPostBack="true" EnableViewState="true" Checked="true" />
</label>
<label class="inline radio">
<asp:RadioButton runat="server" ID="rdoViewCurrent" CausesValidation="false" GroupName="Filter" Text="View Current" AutoPostBack="true" />
</label>
<label class="inline radio">
<asp:RadioButton runat="server" ID="rdoViewFuture" CausesValidation="false" GroupName="Filter" Text="View Future" AutoPostBack="true" />
</label>
</span>
我在Page_Init 上设置选中的更改事件,如下所示:
public void Page_Init(object sender, EventArgs e)
{
this.rdoViewAll.CheckedChanged += (s, a) =>
{
RebindTerms();
};
this.rdoViewFuture.CheckedChanged += (s, a) =>
{
RebindTerms();
};
this.rdoViewCurrent.CheckedChanged += (s, a) =>
{
RebindTerms();
};
}
我注意到的一件事是,当我删除第一个单选按钮上的 Checked="true" 属性时,CheckedChanged 事件会成功触发。但是,我需要在页面加载时默认选中第一个单选按钮。
【问题讨论】:
-
我相信您已经知道,如果不选中另一个单选按钮,就无法取消选中组中的单选按钮。这样,CheckedChanged 事件只会触发剩余的未选中 RadioButton 而不是已选中的 RadioButton,因此在您的情况下,rdoViewAll 是您的默认事件,该事件只会触发 rdoViewFuture 和 rdoViewCurrent。
-
我建议你改用 Click 事件。
-
@Dr.Stitch - RadioButton 没有可以在代码隐藏中处理的 Click 事件。
-
是的,我建议的是一个 javascript 点击事件。
标签: c# asp.net radio-button