页面回送和跨页面的传送

所谓回送就是传送回原来的页面,回送包含在初始页面上收集的所有窗体信息,以备在需要时处理。下面就是一个简单的回送的例子:

aspx页面上放一个label控件和一个button控件,在页面的Page_Load事件中加上如下代码:

protected void Page_Load(object sender, EventArgs e)

    {

        if (IsPostBack)

        {

            Label1.Text = "回调了!";

        }

        else

            Label1.Text = "不是回调!";

    }

运行时,在没单击按钮时,label控件显示:“不是回调!”。按了按钮后显示:“回调了!”。

由上可以看出页面的回调是使用属性“IsPostBack”来检测的。

 

跨页面传送

例如:有两个页面ABA页面有一个TextBox和一个Button控件,用来得到用户的姓名这一消息。而页面B则获得A中用户输入的姓名信息,并显示:“XXX,欢迎您!”

上面这个例子就得使用页面传送,也就是B页面中的姓名信息需要从A页面中的TextBox获得!如果B页面不是经由A页面进入的(比如再调试时我们设置B页面为起始页),那么B页面中的XXX这一变量就为空!此时我们让B页面的显示为“没有经过正规渠道进入!”

为了实现跨页面传送,有两个方法:

方法一:

A页面的Button控件的PostBackUrl设置为页面B的路径,同时在B页面的Load_Page事件中添加以下代码:

protected void Page_Load(object sender, EventArgs e)

    {

        if (PreviousPage.IsCrossPagePostBack)

        {

            TextBox temp = (TextBox)PreviousPage.FindControl("TextBoxName");

            Label1.Text = temp.Text;

        }

        else

            Label1.Text = "没有经过正规渠道进入!";

    }

从上面的代码可以看出,首先通过PreviousPage.IsCrossPageBack属性来判断是不是有跨页面传送这一“事件”发生。如果有,首先实例化一个你和先前页面的那个你要取值的控件类型的对象。

方法二:

创建A页面中的你要传送给后面的控件的属性。

A.aspx.cs中加入:

 

public TextBox NameTextBox

    {

        get

        {

            return TextBoxName;

        }

    }

B页面调用时就直接调用PreviousPage.NameTextBox.Text属性即可!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值