页面中传递数据的几种方法

本文介绍了一种在ASP.NET中实现跨页面数据传递的技术。通过设置按钮的PostBackUrl属性并利用PreviousPage对象,可以直接从一个页面传递数据到另一个页面。此外,还提供了通过FindControl方法获取控件值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

页面中传递数据的三种方法:cookiessessionapplication

还有一种把当前页面中的数据直接传递给另一个页面:

页面1aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="page1.aspx.cs" Inherits="跨页面传递.page1" %>

 

<!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="TextBox1" runat="server"></asp:TextBox>

        <br />

        <asp:Button ID="Button1" runat="server" Text="提交到页面"

            PostBackUrl="~/page2.aspx" onclick="Button1_Click" />

    </div>

    </form>

</body>

</html>

Page1.aspx.cs代码加入如下属性:

public string username

        {

            get { return this.TextBox1.Text; }

        }

 

Page2.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

namespace 跨页面传递

{

    public partial class page2 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            if (this.PreviousPage != null)

            {

                this.Response.Write(PreviousPage.username);

               

            }

        }

    }

}

Page2.aspx:头部代码修改

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="page2.aspx.cs" Inherits="跨页面传递.page2" %>

<%@ PreviousPageType VirtualPath="~/page1.aspx"%>

“这个代码是指定处理页为page1

上述代码原理是通过页面1的按钮把数据传递给页面2,按钮代码中设置了postbackurl属性:PostBackUrl="~/page2.aspx" onclick="Button1_Click"

这表示处理页是page2

而在page2aspx.cs中,通过PreviousPage.username得到页面1传过来的username属性。从而输出。

还有一种方法,这种方法直接通过查找页面1中的控件名称而得到控件的属性值:

Page1.aspx以及page1.aspx.cs都不变page2.aspx中去掉<%@ PreviousPageType VirtualPath="~/page1.aspx"%> apsx.cs中把原来的代码删除,改写为

TextBox mytextbox = PreviousPage.FindControl("TextBox1") as TextBox;

                Response.Write(mytextbox.Text);

as TextBox转换比通过用(TextBox)强制类型转换好。因为强制类型转换会出错。传递给页面2的控件如果不是textboxtextbox1就会出错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值