ASP对象有一些我无法获得的东西。我在更新面板中有一个按钮。在同一页面上,我有一个复选框,一个radiobutton和一个文本框(在更新面板之外)。当我点击我的按钮时,我会访问所有这三个对象。文本框能够保留其文本值。但是当我检查检查状态时,收音机/复选框总是返回false。
当然,我的形式比我刚才所说的更复杂。它涉及Javascript和用户控件。我设法使用Request.Form获取我的复选框/收音机的值,但我发现这个解决方案并不适合。
有人可以帮我找到为什么收音机/支票不会返回真正的检查状态?提前谢谢!
编辑: 我试图在一个简单的aspx页面中跟随它似乎有效:
<asp:CheckBox runat="server" ID="checkbox" />
<asp:RadioButton runat="server" ID="radio1" GroupName="radio" CssClass="testRadio" />
<asp:RadioButton runat="server" ID="radio2" GroupName="radio" CssClass="testRadio" />
<asp:TextBox runat="server" ID="text" />
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button runat="server" ID="test_but" OnClick="test_click" />
</ContentTemplate>
</asp:UpdatePanel>
然后我可以访问test_click()中的所有属性。因此,我的真实形式中有一些东西可以打破其他一切。我试图在我的测试页面中添加一些javascript,它似乎也有效。
答案 0 :(得分:2)
这些控件的已知问题。使用SaveViewState和LoadViewState方法来存储和检索这些值。
http://www.4guysfromrolla.com/articles/110205-1.aspx
protected override void LoadViewState(object savedState)
{
base.LoadViewState(savedState);
if (ViewState["Checked"] != null)
checked = (bool)ViewState["Checked"];
}
protected override object SaveViewState()
{
ViewState["Checked"] = checked;
return base.SaveViewState();
}