zoukankan      html  css  js  c++  java
  • Server.Transfer中传递ViewState方法

        当我们使用Server.Transfer时,可以将先前页面中的Request参数一起传到下一页面。但如何将ViewState一起传过去呢?
        主要方法是先将ViewState缓存起来,然后在通过缓存获取。缓存可以是Session等。
        网上有人写了方法,主要是先将ViewState用方法返回。然后在调用页面中通过反身获取。与缓存原理类似。

    例子如下:

        Default.aspx页面

        增加一个ViewState,并添加返回ViewSate的ReturnViewState()方法,最后使用Server.Transfer跳转,代码如下:

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    ViewState["vId"] = "test";
                    Server.Transfer("Tra.aspx");
                }
            }

            /// <summary>
            
    /// 用此方法返回当前页面的ViewState
            
    /// </summary>
            
    /// <returns></returns>
            public StateBag ReturnViewState()
            {
                return ViewState;
            }
        }
     

        Tra.aspx页面:

        在此页面通过反段得到先前页面的ViewState。

            protected void Page_Load(object sender, EventArgs e)
            {
                InitialData();           
            }

            /// <summary>
            
    /// 通过反射得到ViewState,并显示
            
    /// </summary>
            private void InitialData()
            {
                if (null != PreviousPage)
                {
                    Object objPreviousPage = (Object)PreviousPage;
                    MethodInfo objMethod = objPreviousPage.GetType().GetMethod("ReturnViewState");
                    if (objMethod != null)
                    {
                        StateBag viewStageBage = (StateBag)objMethod.Invoke(objPreviousPage, null);
                        if (viewStageBage != null)
                        {
                            if (null != viewStageBage["vId"])
                            {
                                Response.Write("vId:" + viewStageBage["vId"].ToString() + "<br/>");
                            }
                        }
                    }
                }           
            }
  • 相关阅读:
    基于深度学习的人脸识别系统,识别率高达99.7%
    计算机设计思想 —— 虚拟化
    计算机设计思想 —— 类比、建模与隐喻(同构)
    机器学习:simple linear iterative clustering (SLIC) 算法
    如何快速批量修改ArcGIS中的图层设置
    ubuntu 安装cuda 成功
    深度学习攒机配置
    修改hosts文件(判断是否为管理员/以管理员权限运行脚本)
    添加环境变量(永久生效)
    获取管理员组用户
  • 原文地址:https://www.cnblogs.com/scottckt/p/2277903.html
Copyright © 2011-2022 走看看