我遇到了两个单选按钮的简单收音机问题(我不想使用RadioButtonList [RBL],因为RBL不允许子控件,在我的情况下,如果你选择了一个选项,我想启用按钮旁边的文本框;是的,你可以用jQuery来移动文本框,但这太脏了!)。我会检查一个,提交表单(明确或通过AutoPostBack),并且CheckedChanged事件永远不会触发。当页面重新加载时,无论它们在非回发加载时的初始状态还是表单提交前的状态,这两个按钮都将被取消选中。ASP.Net RadioButton丢失ViewState
我拿出了这个复选框,并把它解释成我能想到的最简单的例子。我将EnableViewState = true抛到了这个地方,以防万一它无法找到的地方被禁用。
<form id="form1" runat="server" enableviewstate="true">
<div>
<asp:RadioButton ID="foo" Text="foo" runat="server" AutoPostBack="true" OnCheckedChanged="rbChanged" Checked="true" GroupName="foobar" EnableViewState="true" />
<asp:RadioButton ID="bar" Text="bar" runat="server" AutoPostBack="true" GroupName="foobar"
OnCheckedChanged="rbChanged" Checked="false" EnableViewState="true" />
<asp:Label runat="server" ID="resultLbl" />
</div>
</form>
protected void rbChanged(object sender, EventArgs e)
{
if (foo.Checked) resultLbl.Text = "foo is checked";
else if (bar.Checked) resultLbl.Text = "bar is checked";
else resultLbl.Text = "neither is checked";
}
你发布的代码应该可以工作,但我不确定如果我很好地理解它不适合你。你可以试着更好地解释它吗? – 2010-04-13 19:50:50
FWIW下的文件,当我添加一对与页面具有相似行为的复选框时;他们正常工作。如果我使用VS立即窗口在PageLoad期间检查foo或bar,那么当foo不是回发时检查foo,否则两者都不会被检查。 – 2010-04-13 19:59:52
代码不起作用 - 结果标签永远不会有任何文本,并且CheckedChanged事件(rbChanged)永远不会触发。 – 2010-04-13 20:00:28