使用Server.Transfer方法
这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
a.aspx的C#代码
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //实例a窗体
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
在2005中,每个页的类,都没有命名空间。b.aspx得不到a.aspx的类。如何解决这个问题!
还有,类似这种两个页面,要共用一个对象,对这个对象进行付值或使用。如何来实现。有什么好办法!
这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
a.aspx的C#代码
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //实例a窗体
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
在2005中,每个页的类,都没有命名空间。b.aspx得不到a.aspx的类。如何解决这个问题!
还有,类似这种两个页面,要共用一个对象,对这个对象进行付值或使用。如何来实现。有什么好办法!
跨页发送按以下方法工作:
跨页发送在页 1 中设置窗体操作
单击该按钮时,发送将从页 1 转至页 2
页 2 保留页 1 的视图状态
访问 PreviousPage 时,视图状态将重新填充为页 1 的实例
页 1 然后执行到 LoadComplete 阶段(呈现除外)
此时,页 2 可以访问页 1 中的控件值
<--//CrossPagePostBack_cs.aspx//-->
<script language="C#" runat="server">
void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Hello " + TextBox1.Text + ", you selected " + Calendar1.SelectedDate;
}
</script>^^^^^^^^^^^^^
<asp:TextBox ID="SearchTerm" runat="server" />
<asp:Button ID="Button2" runat="server" Text="Search" PostBackUrl="Search_cs.aspx" />
^^^^^^^^^^^^^^<--//Search_cs.aspx//-->
<script language="C#" runat="server">
void Page_Load(object sender, EventArgs e)
{
TextBox SearchTerm; SearchTerm = (TextBox)Page.PreviousPage.FindControl("SearchTerm");
Label1.Text = SearchTerm.Text;
}
</script>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<asp:Label ID="Label1" runat="server" Text="Label" Font-Size="16pt" ForeColor="#FF0066"
Font-Italic="True" />
^^^^^^^^^^^^^^^^
由于执行页 1(至 LoadComplete)是为了响应跨页发送,当请求不是跨页发送而是对页 1 的正常请求时,有时需要仅执行该页中针对特定情形的代码。您可以使用页 1 中的 IsCrossPagePostBack 属性来处理这一情况。
if (!Page.IsCrossPagePostBack)
{
// handle a normal request
} 也可以回发至其他应用程序,但此时 PreviousPage 属性为空。也可以在代码中传输,同时使用 Server.Transfer(IHttpHandler, preserveViewState) 通过 PreviousPage 属性保留视图状态。