繁体   English   中英

当我在asp.net中禁用viewstate并且我的viewstate太大时,我无法访问表单中的控件,我不想启用它

[英]can't access a control in my form when I disable viewstate in asp.net and my viewstate is too bulky I don't want to enable it

我想以某种形式禁用视图状态,因为它太庞大了(每页大约1mb),原因是从数据库中检索了一些数据,而在同一表单上的其他位置,我想从母版页访问控件。 但是当我将Listview的viewstate设置为false时,将出现以下错误:

你调用的对象是空的。

在这种情况下我该怎么办? veiwstate太笨拙了,这是我为访问特定控件而写的内容:

Control cc = Page.Master.FindControl("mainContent").FindControl("ListView1").FindControl("itemPlaceholderContainer");

        foreach (Control ListItemctrl in cc.Controls)
        {
            Control lblNewsId = ListItemctrl.FindControl("lblNewsID");
            if (lblNewsId != null)
            {
                Type t = lblNewsId.GetType();
                if (t.FullName == "System.Web.UI.WebControls.Label")
                {

                    string newsID = ((Label)lblNewsId).Text;

                    foreach (Control childCtrl in ListItemctrl.Controls)
                    {


                        CheckBox ctrlCB = childCtrl.FindControl("chkItem") as CheckBox;

                        if (ctrlCB.Checked)
                        {

                            //based on DDLAction we will do the things ;)


                        }
                        if (childCtrl.FindControl("chkItem") != null)
                            break;

                    }//end foreach childCtrl
                }
            }//end outer if

        }//end foreach listItenctrl

您可以禁用整个页面的viewstate并有选择地为您的控件启用它,如此处所述

http://www.4guysfromrolla.com/articles/071410-1.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM