Ich habe ein Benutzersteuerelement auf einer Seite, die einige Status in Viewstate beibehalten müssen. Wann immer ein Postback passiert, werden die Einträge im Viewstate auf null gesetzt.UserControl Viewstate verliert alle Werte nach Postback
Seite
<%@ 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>
User Control
<%@ 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" />
Wenn ich die Seite laden, wird Viewstate [ "Test"] auf "Test" zugewiesen, aber wenn ich die Checkbox, funktioniert die Seite Ein Postback und ViewState ["Test"] ist wieder null. Was vermisse ich?
-Update-
Also, auch wenn ich einstellen EnableViewState = auf der Seite wahr und die Steuer EnableViewState war in der Master-Seite falsch. Ich hatte
this.Page.Master.EnableViewState = true;
zum Steuerung hinzuzufügen, um es an die Arbeit.
Danke für die Hilfe!
Welche Checkbox? Und wo prüfen Sie den Wert von ViewState? Bitte fügen Sie mehr Code hinzu – nmat
Diese Checkbox (Es ist nur da, um das Postback auszulösen) und ich überprüfe den ViewState im Debugger in der Methode Page_Load auf dem Postback. –
user467384