2011-02-23 36 views
0

我在我的用戶控件上有一個構造函數 從主頁我只是重新初始化用戶控件。如何在構造函數中傳遞值以啓用或禁用asp.net控件中的按鈕?

我試圖

//構造

UserControl(isNew) 
    { 
    this.btnAdd.Enabled=true; 

    } 

BtnAdd是我想禁用(ASPX按鈕RUNAT服務器)控制。

編譯時,它不顯示error.But而是運行時它會拋出錯誤,說btnAddis爲空。 Object reference not set to an instance of an object. for btnAdd。 Thnaks

回答

1

使用Page_Init事件和一個屬性。

[BrowsableAttribute(True)] 
[DefaultValue("true")] 
public bool IsNew { get; set; } 

protected void Page_Init(object sender, EventArgs e) 
{ 
    btnAdd = IsNew; 
} 
1

你爲什麼不簡單地讓Button默認啓用?

<asp:Button ID="btnAdd" Enabled="true" runat="server" Text="Add" /> 

你不應該使用的用戶控件的構造函數,因爲用戶控件的內容(如您的按鈕)將在用戶控件本身後進行初始化。如果您動態創建UserControl,則應使用LoadControl對其進行初始化。在此UC中公開一個屬性(f.e.CanAdd as Boolean),以便您可以從外部控制此行爲(f.e。Page)。

相關問題