我遇到了兩個單選按鈕的簡單收音機問題(我不想使用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