65.9K
CodeProject 正在变化。 阅读更多。
Home

Asp.net 2.0 跨页面回发

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

1分钟阅读

viewsIcon

6048

这是 Asp.net 2.0 中引入的新概念,用于使用按钮的 PostbakUrl 属性将值从一个页面传递到特定页面。

这是 Asp.net 2.0 中引入的新概念,用于使用按钮、链接按钮和图像按钮的 PostbakUrl 属性将值从一个页面传递到特定页面,从而可以轻松地从先前页面访问这些值。

以下是跨页面回发的示例:

可以通过以下 3 种方式实现:

1)Server.Transfer("PageUrl");

2)Response.redirect(" PageUrl")

3)PostbackUrl("PageUrl")

 

此示例包含 Source.aspx 和 Destination.aspx,共 2 个页面

在 Source.aspx 中

------------------------------

名:<asp:TextBox ID="FirstName" runat="server"></asp:TextBox><br />

            姓:<asp:TextBox ID="LastName" runat="server"></asp:TextBox><br />
        <br />
        <asp:ImageButton ID="ImageButton1"  ImageUrl="~/Image.jpg"  Height="30" Width="40" runat="server"               PostBackUrl ="~/DestinationPage.aspx" />
        <asp:LinkButton ID="LinkButton1" runat="server"    PostBackUrl="~/DestinationPage.aspx">链接按钮</asp:LinkButton>
            <asp:Button ID="Button1" runat="server" Text="提交到目标页面"
             PostBackUrl ="~/DestinationPage.aspx" /><!--onclick="Button1_Click1" />

---------------------------------

在 Source.aspx.cs 中

public string FormFirstName
    {

        get { return FirstName.Text; }

    }



    public string FormLastName
    {

        get { return LastName.Text; }

    }
    protected void Page_Load(object sender, EventArgs e)
    {

        if ((PreviousPage != null)&& (PreviousPage.IsCrossPagePostBack))
        {

            Page previousPage = PreviousPage;

            TextBox firstName = (TextBox)previousPage.FindControl("FirstName");

            TextBox lastName = (TextBox)previousPage.FindControl("LastName");
}

protected void Button1_Click1(object sender, EventArgs e)
    {
        Server.Transfer("DestinationPage.aspx");

    }

 -------------------------------

 DestinationPage.aspx

<asp:Label ID="labelFirstName" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:Label ID="labelLastName" runat="server" Text="Label"></asp:Label>
        <asp:TextBox ID="nametxt" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button"/>

 

--------------------------------

DestinationPage.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        string str = Request.Form["FirstName"];
           
        //if ((PreviousPage != null) || (PreviousPage.IsCrossPagePostBack))
            if((!Page.IsPostBack) || (PreviousPage.IsCrossPagePostBack))
        {
            SourcePage prevPage = PreviousPage;

            labelFirstName.Text = prevPage.FormFirstName;

            labelLastName.Text = prevPage.FormLastName;
        }


        else if ((PreviousPage!=null) ||(PreviousPage.IsCrossPagePostBack))

            {

                SourcePage prevPage = PreviousPage;



                // 现在我们可以使用文本框中的值并在两个 Label 控件中显示它们..

                labelFirstName.Text = prevPage.FormFirstName;

                labelLastName.Text = prevPage.FormLastName;
             }
       
    }

 

 

 

 

 

© . All rights reserved.