页面间传值与跳转的区别

在a.aspx跳转到b.aspx

通过Server.Transfer("b.aspx") 与Response.Redirect("b.aspx")的区别

如果是通过通过Server.Transfer()在a.aspx跳转到b.aspx的,则在b.aspx页面,可以查找到保存在a.aspx页面中的 控件中的值,如果是Response.Redirect(),则得不到到a.aspx页面中控件的值。

如果是通过Server.Transfer("b.aspx"),则可以通知以下方式得到 保留在 a.aspx中例如 Label,HiddenField中的值

HiddenField hfOrderID = new HiddenField();
HiddenField hfPayMoney = new HiddenField(); 

if (Page.PreviousPage != null)
{
    try
    {  

    //
           //查找母版页 ,           
           MasterPage masterPage = (MasterPage)Page.PreviousPage.Controls[0];

           //
           //查找容器
           ContentPlaceHolder contentPlaceHolder = (ContentPlaceHolder)masterPage.FindControl("ContentPlaceHolder3");
           System.Web.UI.UserControl userControl = (System.Web.UI.UserControl)contentPlaceHolder.FindControl("MyOrder1");

          //
          //查找到对应的数据传送HiddenField
          hfOrderID = (HiddenField)userControl.FindControl("hfOrderID");
          hfPayMoney = (HiddenField)userControl.FindControl("hfPayMoney");

    //
          //获取传入的订单号
          string strOrderID = hfOrderID.Value;

          string strPayMoney = hfPayMoney.value;

  }

}

posted @ 2010-04-07 10:44  Vihone  阅读(363)  评论(0编辑  收藏  举报