西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)ASP.NET → Asp.net頁面幾種傳值的方法分享

Asp.net頁面幾種傳值的方法分享

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/1/28 17:54:00字體大。A-A+

作者:西西點擊:0次評論:0次標(biāo)簽: 傳值

  • 類型:磁盤工具大小:18.8M語言:中文 評分:5.0
  • 標(biāo)簽:
立即下載

1、利用網(wǎng)頁Cookie傳值

下面為起始頁Defaut1.aspx.cs部分代碼:

protected void Button1_Click1(object sender, EventArgs e)
{
       HttpCookie cookie_name = new HttpCookie("myname");
       cookie_name.Value = this.TextBox1.Text;
       Response.AppendCookie(cookie_name);
       //Server.Transfer("ShowerInfo.aspx");
    Response.Redirect("ShowerInfo.aspx");
}

下面接受傳值頁面ShowerInfo.aspx.cs代碼:

protected void Page_Load(object sender, EventArgs e)
{
        this.Label1.Text = Request.Cookies["myname"].Value.ToString();
}

2、利用@ PreviousPageType指令和實體類實現(xiàn)頁面?zhèn)髦?/strong>

PreviousPageType指令是ASP.NET 2.0跨頁面回送機制的一部分,允許指定來源頁面的虛擬路徑,以便強類型訪問來源頁面。正常情況下,發(fā)送的數(shù)據(jù)可通過PreviousPage屬性和FindControl方法訪問,但使用強類型的PreviousPageType指令允許訪問源頁面上的公共屬性,而不需要調(diào)用FindControl方法。
     如有下面一簡單userInfo類: 

public class UserInfo
{
    public UserInfo()
    {
        //
        //TODO: 在此處添加構(gòu)造函數(shù)邏輯
        //
    }
      
        private TextBox textName;
        public TextBox TextName
        {
            get
            {
                return textName;
            }

            set
            {
                textName = value;
            }
        }

        private TextBox textPwd;
        public TextBox TextPwd
        {
            get
            {
                return textPwd;
            }

            set
            {
                textPwd = value;
            }
        }

        private TextBox textEmail;
        public TextBox TextEmail
        {
            get
            {
                return textEmail;
            }

            set
            {
                textEmail = value;
            }
        }
}

起始頁面Default1.aspx文件代碼:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>無標(biāo)題頁</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      
        <asp:TextBox ID="TextName" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextPwd" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextEmail" runat="server"></asp:TextBox>
        <asp:Button ID="Submit" runat="server" onclick="Submit_Click" Text="傳值" />
        <br />
    
    </div>
    </form>
</body>
</html>

起始頁面Default1.aspx.cs代碼:

public partial class Default1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {


    }
   
    public UserInfo myInfo    //為頁面添加一UserInfo類型的屬性。從而實現(xiàn)傳遞復(fù)雜數(shù)據(jù)。
    {
        get
        {
            UserInfo info = new UserInfo();
            info.TextName = TextName;
            info.TextPwd = TextPwd;
            info.TextEmail = TextEmail;
            return info;
        }
    }

    protected void Submit_Click(object sender, EventArgs e)
    {
        this.Submit.PostBackUrl = "~/ShowerInfo.aspx";

        //上面的跳轉(zhuǎn)語句不可以用如:Response.Redirect(“ShowerInfo.aspx”)來替換,否則會出現(xiàn):“未將對象引用設(shè)置到對象的實例!卞e誤。
    }
}


下面為接受頁面ShowerInfo.aspx部分代碼

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %>
  <%@ PreviousPageType VirtualPath="~/Default1.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>無標(biāo)題頁</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <br />
        <br />
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        <br />
        <br />
        <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
    
    </div>
    </form>
</body>
</html>

上面一行被標(biāo)注為紅色的代碼不可少:<%@ PreviousPageType VirtualPath="~/Default1.aspx" %> ,從而可以使得接受頁面ShowerInfo.aspx.cs中可以利用
UserInfo mInfo = PreviousPage.myInfo 語句獲取上一頁面Default1.aspx設(shè)置的公共屬性myInfo的值。

下面為接受頁面ShowerInfo.aspx.cs部分代碼:

public partial class ShowerInfo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        UserInfo mInfo = PreviousPage.myInfo;
        Label1.Text = mInfo.TextName.Text;
        Label2.Text = mInfo.TextPwd.Text;
        Label3.Text = mInfo.TextEmail.Text;

    }
}

3、利用Server.Transfer( )和Context.Handler實現(xiàn)頁面?zhèn)髦?br />   起始頁面Default1.aspx.cs代碼:

public partial class Default1 : System.Web.UI.Page
{
    private string name;
    private string pwd;

    public String Name
    {
        get
        {
            return this.TextBox1.Text;
        }

    }

    public string Pwd
    {
        get
        {
            return this.TextBox2.Text;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {


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

上面代碼中只能使用Server.Transfer()方法實現(xiàn)頁面的跳轉(zhuǎn)。Web 窗體頁是應(yīng)用程序中的類,因此可以向處理任何類一樣為它們創(chuàng)建屬性。Server.Transfer只能夠轉(zhuǎn)跳到本地虛擬目錄指定的頁面,并且跳到目標(biāo)頁面后,瀏覽器顯示的地址并不會改變(這種特性有時可能是有益處的。,這樣就在極其有限的頁面生存周期內(nèi),通過特別技術(shù):Context.Handler讓目標(biāo)頁面能讀取源頁面的屬性值。

接受傳值頁面ResutlPage.aspx.cs代碼:

protected void Page_Load(object sender, EventArgs e)
{
       
        if (!IsPostBack)
        { 
            
            Default1  myver;
            myver = (Default1) Context.Handler;
            this.Label1.Text=myver.Name;
            this.Label2.Text = myver.Pwd;
        }
}

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)

    最新文章
      沒有數(shù)據(jù)