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.
Vous devez vous connecter pour publier un commentaire.
Votre code fonctionne parfaitement ici. La seule explication que je peux penser, c'est que l'état d'affichage est désactivé sur un contrôle parent.
JournalRanking
est à l'intérieur d'une page qui est à l'intérieur d'une MasterPage. Vérifiez que vous n'avez pasEnableViewState=false
n'importe où parce que cela vous empêche de récupérer la valeur sur la page de publication.