ASP对象有一些我所不具备的。我在更新面板中有一个按钮。在同一页面上,我有一个复选框,一个单选按钮和一个文本框(位于更新面板之外)。当我单击按钮时,将访问所有这三个对象。文本框能够保留其文本值。但是,当我检查那里的选中状态时,单选框/复选框始终返回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,它似乎也可以使用。

最佳答案

这些控件的已知问题。使用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();
}

关于c# - 在回传中保留单选/复选框值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8271654/

10-12 05:24