2014-06-09 46 views
-1

我試圖在按鈕單擊事件期間向面板(包含「表單」輸入數據)添加自定義控件,並且我想訪問在輸入這些數據之後,它的方法就像.Validate()。但是當我嘗試這樣做的時候,ctrl帶有空值。加載頁面執行期間添加的動態自定義用戶控件(按鈕單擊事件)

這裏是我的代碼部分:

protected void btnNext2_Click(object sender, EventArgs e) 
{ 
... 
ctrlCompliance = (Compliance)LoadControl("../../ascx/SRM/Compliance.ascx"); 
ctrlCompliance.ReadOnly = false; 
pnlCompliance.Controls.Add(ctrlCompliance); 
... 
} 

protected void btnNext3_Click(object sender, EventArgs e) 
{ 
... 
ctrlCompliance = pnlCompliance.Controls[0] as Compliance; 
ctrlCompliance.Validate() <- this is allways null 
... 
} 

我不能使用Page_Init因爲大多數解決方案的提出,真的只需要在該按鈕點擊加載它。有人和我有同樣的問題嗎?

回答

0

您應該使用Page_Init加載它,但將它的visible屬性設置爲False。然後使用JavaScript或代碼隱藏,當需要顯示打印按鈕時,可以將其可見屬性更改爲True。

所以移動:

ctrlCompliance = (Compliance)LoadControl("../../ascx/SRM/Compliance.ascx"); 
ctrlCompliance.ReadOnly = false; 
pnlCompliance.Controls.Add(ctrlCompliance); 

到Page_Init

+0

我不能。只有在btnNext2點擊後,我需要控件才能註冊一個JS函數。 – user3466681

+0

我還是不明白你爲什麼不加載Page_Init上的按鈕? –

+0

導致頁面被標籤分開。我只想在第二個選項卡上加載控件! – user3466681

相關問題