我想在表单中禁用我的viewstate,因为它太大(每页大约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
答案 0 :(得分:1)
您可以停用整个页面的viewstate,并按照此处的说明为您的控件选择性地启用它