剛看到 F6 Team ASP.NET父子視窗的應用,利用子視窗的Gridview選取一個值,傳回父視窗 ,
以及 MIS2000 Lab. 跨網頁公佈 Cross-Page Posting ,就想到好像以前有做各類似的範例,
找了一下 MSDN FORUM 回覆:如何以post方式轉到別一個網頁? 找到之前PO的這篇,
就把程式碼整理一下發佈在點部落,下次也比較好找。
剛看到 F6 Team ASP.NET父子視窗的應用,利用子視窗的Gridview選取一個值,傳回父視窗 ,
以及 MIS2000 Lab. 跨網頁公佈 Cross-Page Posting ,就想到好像以前有做各類似的範例,
找了一下 MSDN FORUM 回覆:如何以post方式轉到別一個網頁? 找到之前PO的這篇,
就把程式碼整理一下發佈在點部落,下次也比較好找。
ASP.NET 2.0 裡有一各功能是 CrossPagePostBack ,可以比較透過設定的方式,來將目前頁面的資料,
POST到另一個ASPX 。
例如說 我有兩個網頁 A.aspx 按下按鈕後POSTBACK到 a2.aspx ,然後a2.apsx 可以透過 A.aspx
所提供出來的方法或屬性,直接做取得。
所以重點是 a.aspx 要設定 postbackurl
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="A1.aspx.cs" Inherits="A1" Title="Untitled Page" %>
<%@ Register Src="UCMenu.ascx" TagName="UCMenu" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<uc1:UCMenu ID="UCMenu1" runat="server" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label" Width="79px"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="A1" OnClick="Button1_Click" PostBackUrl="~/A2.aspx" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Content>
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class A1 : System.Web.UI.Page
{
protected void Button1_Click(object sender, System.EventArgs e)
{
}
public string GetString()
{
string strTemp = TextBox1.Text;
return strTemp;
}
}
a2.aspx 則透過 PreviousPage 可以取到 A.aspx 的方法與屬性
<%@ PreviousPageType VirtualPath="~/A1.aspx" %>
A2.aspx
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class A2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
{
//Label1.Text = ((A1)PreviousPage).GetTextBox;
Label1.Text = PreviousPage.GetString();
}
}
備註一.之前1.1就可以做的到,是使用 Server.Transfer 或 Request.form 。
備註二.透過方法來取得 a.aspx 本身的資料,可以在方法內在加上一些判斷式,來過濾掉一些會發生的問題或檢查)