Button、ImageButton、LinkButton 等實作 IButtonControl 的控制項,設定 PostBackUrl="~/TargetPage.aspx" 即可將表單提交至不同頁面,無需來源頁撰寫代碼。
protected void Page_Load(object sender, EventArgs e) {
if (PreviousPage != null) {
TextBox txtStart = (TextBox)PreviousPage.FindControl("txtStartDate");
if (txtStart != null) { /* 使用 txtStart.Text */ }
}
}
限制:需知來源頁控制項 ID、FindControl 僅搜尋當前命名容器、巢狀控制項需先取得父容器參考。
來源頁 (SourcePage.aspx) 公開屬性封裝控制項值:
public string FirstName { get { return txtFirstName.Text; } }
目標頁 (TargetPage.aspx) 加入指令:
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>
即可強型別存取:string name = PreviousPage.FirstName;。PreviousPage 型別為來源頁類別,IntelliSense 完整支援。
VirtualPath:指定來源頁 .aspx 路徑,編譯器動態產生強型別。TypeName:指定來源頁完整類別名稱 (需預先編譯或置於 App_Code)。PreviousPage.IsValid。