2015-07-20 68 views
0

我有兩個用戶控件UC_1.ascx & Uc_2.ascx。Usercontrol findcontrol屬性拋出對象引用未設置爲對象的實例?

我試圖綁定來自UC_1的UC_2文本框值。

下面是我的代碼:

System.Web.UI.UserControl UserControl1 = (System.Web.UI.UserControl)Page.FindControl("UC_2"); 
if (UserControl1 != null) 
{ 
    TextBox txt = UserControl1.FindControl("txtTest") as TextBox; //thwon object null reference error. 
    txt.Text = "test123123123213"; 
} 

但我從打電話UserControl1對象收到錯誤。

錯誤等:

對象引用不設置爲一個對象的一個​​實例。

+0

您無法找到像這樣的控件,請參閱此答案http://stackoverflow.com/a/4955836/1432033 – yogi

+0

'NullReferenceException'是初學者程序員的常見情況。所提供的鏈接應該有助於你理解問題。然後使用調試器來查找什麼/哪裏/何時有一個變量是'null'。 –

回答

-1

通過

if(UserControl1.FindControl("txtTest") != null) 
{ 
TextBox txt = UserControl1.FindControl("txtTest") as TextBox; 
txt.Text = "test123123123213"; 
} 

的FindControl更換 TextBox txt = UserControl1.FindControl("txtTest") as TextBox;

是無法找到txtText,請記住,它僅搜索容器的直接子。

+0

我從if條件中獲取錯誤錯誤如:對象引用未設置爲對象的實例。 – Dhamo

+0

已更正代碼以檢查爲空。 – learningNew

0

1)您需要檢查您的UserControl1是否爲空。

2)如果不是,請檢查UserControl1.FindControl("txtTest") as TextBox不等於null。

該代碼等同於下面的表達式,只是表達式變量只被計算一次。 表達式爲type ? (type)expression : (type)null問題出現在您嘗試投射的類型中。

+0

我越來越UserControl1是空的。如何避免這一點。你能幫我解決嗎? – Dhamo

+0

從UserControl1.FindControl(「txtTest」)得到的答案是什麼? –

+0

我想從我的UC_1.ascx中將值傳遞給UC_2.ascx文本框。但是在分配UserControl1的時候我得到了空值。 – Dhamo

相關問題