2010-02-21 76 views
0

我正在處理類似嚮導的頁面集,並且我依靠跨頁面回發來在它們之間導航。ASP.NET如何在跨頁面回發的前一頁上提高加載事件

我需要能夠觸發上一頁的Load事件,以保存頁面的表單數據。

我被告知,對於這種情況我只需要訪問目標頁面中的PreviousPage屬性,這將觸發前一頁的加載事件,但由於某種原因,這似乎並不正在工作。

如果PreviousPage屬性不爲空,是否還有其他操作可以顯式觸發前一頁上的加載事件?

感謝您的幫助,

回答

1

您是否考慮將您在上一頁加載過程中執行的任何持久性邏輯移動到頁面上的方法中?

這樣,你可以只打:

if(PreviousPage != null) 
    PreviousPage.DoThatSavingThing(); 

顯然,你需要鍵入它讓你添加,除非你添加的那些所有頁面的具體方法。

+0

不知道爲什麼我沒有想到的是,偉大的想法。謝謝 :) – yogibear 2010-02-21 22:14:37

0

這聽起來有點混亂給我,但如果你想要的數據訪問,這是最好的數據保存到的東西,你可以輕鬆搞定,就像ASP.NET會話緩存一樣。因此,您不必爲了獲取數據而返回先前導航的頁面,而是在您第一次到達第一頁時緩存數據,然後當用戶導航到第二頁時,它將有權訪問該信息。

0

添加 - 我使用兩種獲取「強類型」前頁的方法進行測試。

  1. 添加到目標的引用:

  2. 添加於目的地的|上一頁指令:

當訪問在目的地PreviousPage屬性,Load事件被髮射到 PreviousPageName頁面(來源)。

實例(假設有一個名爲PreviousPageName(來源頁面上的測試的公共屬性)):

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (PreviousPage != null) 
    { 
     //Using a reference, you have to cast: 
     PreviousPageName x = (PreviousPageName)PreviousPage; 
     string test = x.Test; 

     //Using the PreviousPage directive, you do not need to cast: 
     string test2 = PreviousPage.Test 


    } 
}