在 ASP.NET Web 網頁中跨網頁公佈
從來源網頁取得資訊
當您設定跨網頁公佈的網頁時,會經常想要從來源網頁取得資訊。這可能包含來自網頁上控制項的資訊 (也就是瀏覽器張貼的資訊) 以及來源網頁的公用屬性。
取得控制項值
Page 類別會公開名為 PreviousPage 的屬性。如果來源網頁和目標網頁在相同的 ASP.NET 應用程式中,目標網頁的 PreviousPage 屬性會包含來源網頁的參考 (如果網頁不是跨網頁公佈的目標,或是網頁在不同的應用程式中,就不會初始化 PreviousPage 屬性)。根據預設,PreviousPage 屬性的型別是 Page。
注意事項
如果來源網頁和目標網頁在不同的應用程式中,您就無法直接取得網頁上控制項的值,但是可以從 Form 字典中讀取張貼的資料。您無法從來源網頁讀取檢視狀態 (因為已經雜湊)。如果您想要在來源網頁中儲存值,並且在其他應用程式的目標網頁中使用,可以用字串形式將值儲存在來源網頁的隱藏欄位中,然後經由目標網頁上的 Request.Form 進行存取。
您可以使用 PreviousPage 屬性中的參考,搜尋來源網頁上的控制項並擷取值。通常會使用 FindControl 方法執行這項動作。
注意事項
如果您特別編碼來源網頁以便能夠與目標網頁共用資訊,有一個比較簡單的方法可以讓目標網頁使用控制項的值,就是將這些值公開成公用屬性。如需詳細資訊,請參閱本主題稍後的從來源網頁取得公用屬性值。
下列程式碼範例,示範了如何取得來源網頁上 TextBox1 控制項的值。
if (Page.PreviousPage != null)
{
TextBox SourceTextBox =
(TextBox)Page.PreviousPage.FindControl("TextBox1");
if (SourceTextBox != null)
{
Label1.Text = SourceTextBox.Text;
}
}