не могу получить доступ к элементу управления в моей форме, когда я отключаю viewstate в asp.net, и мое viewstate слишком громоздкое, я не хочу его включать - PullRequest
0 голосов
/ 19 марта 2011

Я хочу отключить свое представление в форме, потому что оно слишком громоздкое (около 1 МБ на страницу) из-за извлечения некоторых данных из базы данных, а в другом месте той же формы я хочу получить доступ к элементу управления со своей главной страницы.но когда я установил для viewstate Listview значение 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

1 Ответ

1 голос
/ 19 марта 2011

вы можете отключить режим просмотра для всей страницы и выборочно включить его для вашего контроля, как описано здесь

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

...