我在页面上有一个用户控件,需要在viewstate中保持某些状态.每当发生回发时,viewstate中的条目都将设置为null.
页
<%@ 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" />
当我加载页面时,ViewState [“Test”]被分配给“Test”,但是当我选中复选框时,页面会进行回发并且ViewState [“Test”]再次为null.我错过了什么?
-Update-
因此,即使我在页面中设置EnableViewState = true,并且主页面中的控件EnableViewState为false.我不得不补充一下
this.Page.Master.EnableViewState = true;
控制让它工作.
谢谢您的帮助!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。