Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
Asp.net 用户控件Viewstate在回发后丢失所有值_Asp.net_User Controls_Postback_Viewstate - Fatal编程技术网

Asp.net 用户控件Viewstate在回发后丢失所有值

Asp.net 用户控件Viewstate在回发后丢失所有值,asp.net,user-controls,postback,viewstate,Asp.net,User Controls,Postback,Viewstate,我在一个页面上有一个用户控件,它需要在viewstate中保持某种状态。每当发生回发时,viewstate中的条目都会设置为null 页面 到控件使其工作 谢谢你的帮助 您的代码在这里工作得非常好。我能想到的唯一解释是在父控件上禁用了ViewStateJournalRanking位于母版页内的页面内。检查您没有EnableViewState=false任何位置,因为这将阻止您在页面回发中检索值。什么复选框?您在哪里检查ViewState的值?请在该复选框中添加更多代码(用于触发回发),我正在回发

我在一个页面上有一个用户控件,它需要在viewstate中保持某种状态。每当发生回发时,viewstate中的条目都会设置为null

页面

控件使其工作


谢谢你的帮助

您的代码在这里工作得非常好。我能想到的唯一解释是在父控件上禁用了ViewState
JournalRanking
位于母版页内的页面内。检查您没有
EnableViewState=false
任何位置,因为这将阻止您在页面回发中检索值。

什么复选框?您在哪里检查ViewState的值?请在该复选框中添加更多代码(用于触发回发),我正在回发的Page_Load方法中检查调试器中的ViewState。母版页中的EnableViewState为false(尽管我找不到明确设置它的位置)。在控件中将其设置为true修复了该问题。
<%@ Page Title="" Language="C#" MasterPageFile="~/Main.master" %>
<%@ Register TagPrefix="JR" TagName="JournalRanking" Src="~/Controls/JournalRankRadioButton.ascx" %>
<script runat="server">
</script>

<asp:Content ID="Content3" ContentPlaceHolderID="Content1placeholder" Runat="Server">
    <asp:Panel CssClass="insetBG1" ID="FormView1" runat="server">
        <JR:JournalRanking ID="JournalRanking1" runat="server" ViewStateMode="Inherit" />
    </asp:Panel>
</asp:Content>
<%@ Control Language="C#" ClassName="JournalRankRadioButton" %>
<script runat="server">    
    public String Test
    {
        get
        {
            if (ViewState["Test"] == null)
            {
                ViewState["Test"] = String.Empty;
            }
            return ViewState["Test"].ToString();
        }
        set
        {
            ViewState["Test"] = value;
        }
    }

public void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        this.Test = "Test";
    }
}
</script>
<asp:CheckBox runat="server" AutoPostBack="true" />
this.Page.Master.EnableViewState = true;