2013-07-09 78 views
1

我有一個UserControl作爲FormView的模板,但取決於它處於編輯模式還是插入模式,需要禁用其中一個TextBox控件。我添加了一個功能到UserControl從頁面的Page_Load事件調用UserControl函數

public bool IsInsert 
{ 
    get { return txtUser.Enabled; } 
    set { txtUser.Enabled = value; } 
} 

但我無法得到父母的Page_Load事件的UserControl的參考。我在aspx代碼中定義了控件(而不是代碼隱藏)。我試過使用FindControl,但我得到一個錯誤Object reference not set to an instance of an object。這是因爲在頁面後加載UserControl?有沒有其他方法可以有條件地禁用TextBox

回答

1

它不是好的做法 - User Control應該決定這種單獨的東西...

但是,如果它需要做的是這樣的:

public void Page_Load(object sender, EventArgs e) 
{ 
    InitYouUserControl(); 
} 

更新:

你必須等到您的User Controlload event被解僱。

而要訪問User Control的某些部分,您應該在其中定義一個屬性。

+0

如果不是很好的做法,我會不喜歡使用它...有沒有比使用'User Control'或單獨編寫每個'FormView'模板更好的解決方案? – Jenius

+0

@Pyitoechito - 更新了我的答案。如果它有幫助 - upvote它)如果這是你的問題的解決方案 - 也接受它 – MikroDel

+0

@Pyitoechito - 你知道如何定義財產? – MikroDel

相關問題