Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否在回发时保留收音机/复选框值?_C#_Asp.net_Checkbox_Textbox_Radio Button - Fatal编程技术网

C# 是否在回发时保留收音机/复选框值?

C# 是否在回发时保留收音机/复选框值?,c#,asp.net,checkbox,textbox,radio-button,C#,Asp.net,Checkbox,Textbox,Radio Button,有一点我不能从ASP对象中得到。我在更新面板中有一个按钮。在同一页上,我有一个复选框、一个单选按钮和一个文本框(在更新面板之外)。当我点击我的按钮,我访问所有这三个对象。文本框可以保留his文本值。但是当我检查checked状态时,radio/checkbox总是返回false 当然,我的表格比我刚才说的要复杂得多。它涉及Javascript和用户控件。我设法使用Request.Form来获取复选框/收音机的值,但我觉得这个解决方案不够简洁 有人能帮我找到为什么收音机/支票不会返回到那里,真正的

有一点我不能从ASP对象中得到。我在更新面板中有一个按钮。在同一页上,我有一个复选框、一个单选按钮和一个文本框(在更新面板之外)。当我点击我的按钮,我访问所有这三个对象。文本框可以保留his文本值。但是当我检查checked状态时,radio/checkbox总是返回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方法存储和检索这些值


是否已在复选框/单选按钮上启用自动回发?如果没有,回发可能只发送文本框值,并且在复选框和单选按钮上显示autopostback时,它将必须保持该值,您确定吗?这将是一个真正的大问题不?更新答案-试一试。无法理解为什么没有更好的文档化…请在没有UpdatePanel的情况下尝试它?您好,感谢您提供此解决方案。它可能真的很干净!我试过有upadate面板和没有upadate面板。唯一的问题是,在按钮回发开始之前,SaveViewState没有被调用。我想我需要自己调用它,但在哪里?如果是回发,请在页面中加载?我认为已经太晚了。我不知道如何使用UpdatePanel实现这一点,但对于常规表单,上面的方法对我很有效:)只需为按钮使用常规处理程序。
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();
}