当前位置:  开发笔记 > 编程语言 > 正文

为少数控件启用ViewState,为其他/页面启用禁用

如何解决《为少数控件启用ViewState,为其他/页面启用禁用》经验,为你挑选了2个好方法。

当我为页面禁用ViewState时.它不允许任何其他控件使用ViewState ..即使我为该特定控件设置EnableViewState ="true"..

是否可以在为页面本身禁用ViewState时为控件启用ViewState?

如果不是如何禁用viewstate页面上的控件,除了少数没有明确指定EnableViewState ="false"..键入相同的这么多控件是忙乱..



1> Samuel Kim..:

如果关闭翻转页面的ViewState,则无法为特定组件启用ViewState.这是因为ViewState是递归序列化的,因此当Page不允许ViewState时,它不会为任何子控件序列化ViewState.

在回答你的问题时,如果你不想在单个控件上显式关闭ViewState,但想要保持一些控件ViewState,最好的方法是编写一个小实用程序方法,为所有控件关闭ViewState(使用递归)或其他).然后为要为其启用ViewState的控件启用ViewState.

或者,如果控件是其他容器控件(例如Panel)中的组,则可以采用中间地板且不太有力的方式.您可以通过禁用Panel的ViewState来禁用Panel内所有控件的ViewState.


在.NET 4中,您可以关闭ViewState,但如果为控件设置**ViewStateMode = Enabled**,即使页面已禁用ViewState,它也将允许该控件保持ViewState http://msdn.microsoft.com /en-us/library/vstudio/system.web.ui.control.viewstatemode%28v=vs.100%29.aspx

2> Georgios Pol..:

如果关闭翻转页面的ViewState,则无法为特定组件启用ViewState.这是因为ViewState是递归序列化的,所以如果Page不允许ViewState,它将不会为其任何子控件序列化View.it的子控件.

随着ASP.NET 4的出现,我们有了一个名为ViewStateMode的新属性,即使对页面禁用了视图状态,也可以使用该属性为单个控件启用视图状态.

要使用这个新属性,您可以创建一个将ViewStateMode设置为Disabled的基页类,或者创建一个执行相同操作的PageAdapter.web.config中没有viewStateMode属性.

这是页面适配器的代码:

using System.Web.UI;
using System.Web.UI.Adapters;

namespace Playground.Web.UI.Adapters
{
    public class PageAdapter: System.Web.UI.Adapters.PageAdapter
    {
        protected override void OnLoad(EventArgs e)
        {
            ViewStateMode = ViewStateMode.Disabled;
            base.OnLoad(e);
        }
    }
}

这是浏览器文件的代码:


    
        
    

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有