2012-10-16 88 views
1

我有一個母版頁,其中包含用戶控制ucStatusBarucStatusBar有一個公共方法setStatus()。該方法僅通過傳入的字符串參數在控件中更新<asp:label />用戶控制通信

母版頁內容頁面爲Summary.aspxSummary.aspx有一個用戶控件ucNewEvent。當ucNewEvent表單被保存並返回成功或失敗代碼時,我試圖用成功或失敗消息更新ucStatusBar。我可以撥打ucStatusBar.setStatus("success message")但我在運行時得到null參考異常,因爲setStatus試圖設置標籤b/c的Text屬性由於某些原因<asp:label />null。爲什麼這會是null?有沒有更好的方法來實現這一目標?

+0

我一直在使用ASP.Net兩年,我仍然發現頁面生命週期有時令人沮喪/困惑。特別是當您談論跨頁面統一的多個頁面的多個控件時。如果在一些頁面循環研究之後仍然無法解決這個問題,請編輯此問題併發布一些代碼---我很想看看我們是否無法弄清楚並學習一些東西。我絕對需要這種做法。 – CptSupermrkt

回答

1

只是一個猜測,但我認爲你正試圖從Page_Load事件(或其中的某個函數)中設置Text屬性。

ASP.NET編程完全是關於時機,這意味着你真的需要了解Page Life Cycle。您可能在加載完成之前嘗試訪問用戶控件。

通常,最好嚴格使用Page_Load事件來解析請求(Server.Request)。在LoadCompletePreRender事件中獲取所需的信息,將其保存到類變量中,然後設置控件屬性等。