Page的IsCrossPagePostBack属性

ASP.NET 提供了两种用于在页与页之间传输控件的机制。您可以使用 Transfer 方法在页之间传输处理,也可以通过将页 URL 指派给实现 IButtonControl 接口的按钮控件的 PostBackUrl 属性来发出跨页请求。

看个例子来理解IsCrossPagePostBack的作用:

先创建crossPage_before.aspx和crossPage_after_cs.aspx的2个aspx页面

crossPage_after_cs.aspx  画面中分别设置了1个textbox,2个按钮和1个link。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="crossPage_before.aspx.cs" Inherits="crossPage_before" %>
<!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:TextBox ID="txtName" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="btnPostBack" runat="server" Text="PostBack" PostBackUrl="~/crossPage_after_cs.aspx" /><br />
        <asp:Button ID="btnTransfer" runat="server" Text="Transfer" OnClick="btnTransfer_Click" /><br />
        <a href="crossPage_after_cs.aspx">Link</a>
    </div>
    </form>
</body>
</html>

PostBack按钮的PostBackUrl属性中选择所要迁移的crossPage_before.aspx的画面;Transfer按钮则双击进入OnClick事件中写入画面之间迁移的Transfer方法。

protected void btnTransfer_Click(object sender, EventArgs e)
{
        Server.Transfer("crossPage_after_cs.aspx");
}

 crossPage_before.aspx画面中设置了一个Literal控件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="crossPage_after_cs.aspx.cs" Inherits="crossPage_after_cs" %>
<!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:Literal ID="ltrGreet" runat="server"></asp:Literal></div>
    </form>
</body>
</html>

在Page_Load中写入以下代码:

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 crossPage_after_cs : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.PreviousPage != null)
        {
            if (Page.PreviousPage.IsCrossPagePostBack)
            {
                TextBox txtName = (TextBox)Page.PreviousPage.FindControl("txtName");
                ltrGreet.Text = "您好," + txtName.Text + "朋友!";
            }
            else
            {
                ltrGreet.Text = "画面迁移而已";
            }
        }
    }
}

运行crossPage_before.aspx页面,我们在文本框里输入自己的名字,点击PostBack按钮可以看到迁移画面crossPage_after_cs.aspx上"您好,XXX先生!"字样,而其Transfer按钮和link则显示"画面迁移而已"

IsCrossPagePostBack方法也就是说来判断是否是Post,还是Transfer这样只是迁移画面的动作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值