页面间传参的常用方式

1页面间传参的常用方式

1)request方式:仅适用于一个或多个字符串
  Response.Redirect("webform2.aspx?myid=123&myname=eddie005");
  取: string myID = Request.QueryString["myid"];
       string myName = Request.QueryString["myname"];
但是该方法传参遇到特殊的字符例如“”&、“+”等就会有问题,所以需要进行编码转换:
string tmpID = Server.UrlEncode("123");
         string tmpName = Server.UrlEncode("暴&走");
Response.Redirect("webform1.aspx?myid=" + tmpID + "&myname=" + tmpName);
取: string myID = Server.UrlDecode(Request.QueryString["myid"]);
           string myName = Server.UrlDecode(Request.QueryString["myname"]);

对应的Javascript函数是escape()和unescape()

2)Session:适用于对象
  存:Session["myTable"] = new DataTable();
  取:DataTable tmp = Session["myTable"] as DataTable;

3)Server.Transfer:适用于对象
webForm1:
      public int MyAge
        {
            get{return Convert.ToInt32(TextBox1.Text);}
        }
        public DataTable MyTable
        {
            get{return myDataTable;}
        }

        private void Button1_Click(object sender, System.EventArgs e)
        {
            Server.Transfer("webForm2.aspx");
    }
webForm2:
   private void Page_Load(object sender, System.EventArgs e)
        {
            if(!IsPostBack)
            {
                if(Context.Handler.ToString()=="ASP.webForm1_aspx")
                {
                    webForm1 webForm =(webForm)Context.Handler;
                    int myAge = webForm.MyAge;
                    DataTable tmpTable = webForm.MyTable;
                }
            }
   }

posted on 2004-12-23 05:58  sdav  阅读(701)  评论(0编辑  收藏  举报

导航