0
我想禁用窗體中的viewstate,因爲它太笨重(大約1mb由於從數據庫中檢索一些數據,並在同一表單上的其他位置,我想從我的母版頁訪問控件。 但是當我設置列表視圖的視圖狀態的假我會得到以下錯誤:當我在asp.net中禁用viewstate並且我的viewstate太笨重時,無法訪問我的窗體中的控件我不想啓用它
對象引用未設置到對象的 實例。
我應該在這種情況下怎麼辦? 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
謝謝,但我有一個ListView其中我有一個複選框控件,我需要檢查複選框是否選中批處理任務,當我禁用viewstate我會得到上述錯誤...和如果你閱讀上面的代碼,你會明白我應該訪問哪些fr om母版頁。 – 2011-03-19 20:47:31
通過爲您的邏輯創建方法並將其從您的頁面調用,可以將Master頁面負責。順便說一句複選框的值只存儲在客戶端?如果沒有,嘗試查詢數據源而不是 – Robert 2011-03-19 21:00:36
是的價值觀只在客戶端,我想我可以改變我的策略爲Ajax,以避免使用viewstate: - ? – 2011-03-19 21:48:42