2-PostBackUrl执行跨页面发送
作为使用FindControl()方法从前面页面中获取某个控件的替代方法,可以通过页面属性来暴露控件。代码A.aspx.cs中通过SearchString 属性暴露了txtSearch.这个页面将表单数据发送到B.aspx中
一:A.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title> <asp:Literal ID="Literal1" runat="server"/></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="lbsearch" runat="server" Text="Search:"></asp:Label>
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox> <asp:Button ID="btnSearch"
runat="server" PostBackUrl="B.aspx" Text="Go!" />
</form>
</body>
</html>
二:A.aspx.cs
using System;
using System.Data;
using System.Configuration;
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 A: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
public string SearchString
{
get { return txtSearch.Text; }
}
}
三:B.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="B.aspx.cs" Inherits="B" %>
<%@PreviousPageType VirtualPath="~/Default.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblSearch" runat="server"></asp:Label></div>
</form>
</body>
</html>
四:B.aspx.cs
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 ButtonSearchResults : System.Web.UI.Page
{
protected void Page_Load()
{
if (PreviousPage!=null)
{
lblSearch.Text = String.Format("SearchFor:{0}",PreviousPage.SearchString);
}
}
}
在B.aspx中包含一个<%@PreviousPageType%>, 这个指令把PreviousPage 属性返回的值转换成ButtonSearchType类的实例。如果没有这个指令,PreviousPage 属性会把前页面作为通用的Page类的实例返回。