【问题标题】: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当我在 asp.net 中禁用视图状态并且我的视图状态太庞大时,无法访问我的表单中的控件我不想启用它
【发布时间】:2011-03-20 04:37:04
【问题描述】:

我想禁用表单中的视图状态,因为它太庞大(每页约 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

【问题讨论】:

    标签: c# asp.net viewstate


    【解决方案1】:

    您可以禁用整个页面的视图状态,并按照此处的说明选择性地为您的控件启用它

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

    【讨论】:

    • 谢谢,但我有一个 ListView,其中有一个 checkBox 控件,我需要检查是否选中了批处理任务的复选框,当我禁用视图状态时,我会得到上面的错误......如果你阅读了上面的代码,你就会明白我应该从母版页访问什么。
    • 如何通过在那里为您的逻辑创建方法并从您的页面调用它来负责母版页。顺便说一句,复选框的值仅存储在客户端?如果没有,请尝试查询数据源
    • 是的,这些值仅在客户端出现,我想我可以将策略更改为 ajax 以避免使用视图状态:-?
    • 是的,我认为在后面弄乱代码会更好。只需将 ClientIDMode 设置为可预测复选框即可完成
    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多