UserControl Viewstate perd toutes les valeurs après la publication

J'ai un contrôle de l'utilisateur sur une page qui doit persister un état dans l'état d'affichage. Chaque fois qu'une publication qui se passe les entrées dans le viewstate obtenir la valeur null.

Page

<%@ 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>

De Contrôle De L'Utilisateur

<%@ 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" />

Lorsque je charge la page, ViewState["Test"] est affectée à "Test", mais quand j'ai coché la case, la page n'publication (postback) et ViewState["Test"] est null à nouveau. Ce qui me manque?

-Mise à jour-

Donc, même si j'ai été la mise EnableViewState = true dans la page et le contrôle EnableViewState y avait de faux dans la page maître. J'ai dû ajouter

this.Page.Master.EnableViewState = true;

à la Contrôle pour le faire fonctionner.

Merci pour l'aide!

  • Quelle case? Et où en êtes-vous de vérifier la valeur de l'état d'affichage? S'il vous plaît ajouter plus de code
  • Cette case <asp:Case runat="server" AutoPostBack="true" /> (C'est jus de déclencher la publication) et je suis à la vérification de l'état d'affichage dans le débogueur dans la méthode Page_Load de la publication.
InformationsquelleAutor user467384 | 2013-05-03