平時我們在不用模板頁的ASPX頁面的後臺動態添加控件是這樣寫的:
page.Controls.Add(gviewProduct)
今天遇到這樣一個問題:在帶有master模板的頁面裏不能用動態添加控件
原來的錯誤代碼是這樣寫的:
GridView gviewProduct = new GridView();
gviewProduct.ID = "Product";
this.FindControl("cphContent").Controls.Add(gviewProduct);
提示錯誤:
異常詳細信息: System.NullReferenceException: 未將對象引用設置到對象的實例。
this.FindControl("cphContent").Controls.Add(gviewProduct);
修改後的正確代碼:
GridView gviewProduct = new GridView();
gviewProduct.ID = "Product";
Master.FindControl("cphContent").Controls.Add(gviewProduct);
總結:this 關鍵字將引用類的當前實例。靜態成員函數沒有 this 指針。this 關鍵字可用於從構造函數、實例方法和實例訪問器中訪問成員。