2010-06-21 53 views
1

對於處理.NET框架模型我相當陌生,因此任何幫助/建議都將非常感謝。基本上我想從母版頁調用用戶控件。但是,我需要將對象(更具體的對象列表)傳遞給用戶控件。我在主頁面的Page_Load中生成對象列表。這是我的母版頁中調用用戶控件的行。將參數傳遞給Page_Load中的用戶控件

<cu:Eventlisting1 runat="server" id="eventListing1"></cu:Eventlisting1> 

此用戶控件具有一個名爲CalendarItems的參數,該參數接受項目列表。但是,如果我嘗試在Page_Load方法內部設置它,我的控件在Page_Load之前執行,並引發一個說明CalendarItems爲空的異常。有沒有辦法解決?

編輯:
要儘量幫助澄清。我在這個頁面上有一個下拉列表,它決定了CalendarItems的列表是什麼,當我填充CalendarItems列表時,我需要能夠從下拉列表中讀取選定的值。

回答

2

你可以從setCalendarItems中調用一個initControl函數(現在導致異常的代碼)。 我通常更喜歡這個濫用頁面生命週期(使用Page.Init),因爲這可能會導致其他問題(視圖狀態等)。 在您設置CalendarItems後,在您的usercontrol中定義一個initControl函數並從控制器(頁面或主頁面)調用它可能是最好的,因爲您儘可能多地進行控制(比從屬性中調用initControl更好)。

1

嘗試在頁面的Init方法中填充您的列表,您的控件將被加載併發生在頁面加載事件之前。

+0

您也可以在創建控件時將列表設置爲新的空列表以避免發生異常,然後像現在一樣填充它。這可能需要額外的方法調用才能重建您的日曆,具體取決於您的代碼的外觀。 – jaltiere 2010-06-21 19:02:55

相關問題