ASP.NET单选按钮检查已更改的事件未触发第一个单选按钮

我面临的问题是第一个单选按钮的已检查更改事件未触发。 我启用了ViewState但问题仍然存在。 请看下面的代码:

      

我在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事件成功触发。 但是,我需要在页面加载时默认选中第一个单选按钮。

您最初可以为所有RadioButtons保留Checked="false" ,并使用客户端代码设置所选按钮:

 private RadioButton selectedRadioButton; protected void Page_Load(object sender, EventArgs e) { selectedRadioButton = rdoViewAll; if (rdoViewCurrent.Checked) { selectedRadioButton = rdoViewCurrent; } if (rdoViewFuture.Checked) { selectedRadioButton = rdoViewFuture; } rdoViewAll.Checked = false; rdoViewCurrent.Checked = false; rdoViewFuture.Checked = false; ClientScript.RegisterStartupScript(GetType(), "InitRadio", string.Format("document.getElementById('{0}').checked = true;", selectedRadioButton.ClientID), true); } 

单击任何RadioButton将始终触发CheckedChanged事件。 实际选择的RadioButton存储在selectedRadioButton ,如果您需要在服务器代码的其他部分中使用它。