2010-01-11 23 views
0

我正在使用CSLA框架和AJAX ModalPopupExtender控件的ASP.NET項目中間。我之前在不同的項目中使用過CSLA和ModalPopupExtender,但這是我第一次將它們一起使用。CSLA,ASP.NET和AJAX ModalPopupExtender - 如何在ModalPopup不可見時加載對象

我希望它的工作方式是讓用戶按下一個按鈕,這將創建一個對象的實例並顯示模式彈出窗口。彈出窗口具有綁定到CslaDataSource的控件,該控件基於剛剛創建的對象。

實際上它的工作方式是在彈出窗口仍然隱藏時加載ModalPopup上的控件,例如,在初始頁面加載期間。這會產生一個錯誤,因爲控件所綁定的對象還不存在,所以它無法正確地在aspx頁面上呈現控件和相應的Javascript。錯誤是: 「Microsoft JScript運行錯誤:Sys.ArgumentNullException:值不能爲空 參數名:元素」

我目前的解決辦法是建立一個虛擬對象的前期,就這樣也有一些是在控件彈出可以綁定到最初。然後,當用戶按下按鈕時,我將替換該對象。我想知道是否有一種更簡單的方法,可以減少我可能會丟失的開銷。

回答

0

即使控件處於隱藏狀態,它們仍然會被創建,它們仍然會通過網頁表單頁面生命週期。 ModalPopup只顯示已經綁定和呈現的控件。

我會建議使用javascript ajax方法(創建一個XmlHttp對象 - 這很容易用jQuery來完成)。您的控件將在當時呈現並遍歷頁面生命週期。 CslaDataSource的OnSelectObject方法會發生綁定。