• 跨网页公布技术



    跨网页公布技术
    特性:
    1、可以将控件传输到呈现的新网页,
    2、只重新导向至原来网页位于相同的web应用程序的目标网页
    3、可以让你从来源网页读取值和公用属性
    4、不要用目标网页的信息更新浏览器的信息,按浏览器中的上一步会造成无法预期的行为


    用法:
    在CrossPageSource.aspx中的Button的PostBackUrl属性设置为:CrossPageTarget.aspx

    在CrossPageTarget.aspx的page_load事件中添加如下程序:
    protected void Page_Load(object sender ,EventArgs e)
    {
    TextBox txtUsername=(TextBox)PreviousPage.FindControl("txtUsername");
    txtMst.Text="你输入的名字是:"+txtUsername.Text;
    }

    跨网页公布技术必须依附在Button按钮的PostBackUrl属性之上,且 只支持Button,LinkButton,ImageButton这三种类型,

    从来源网页取得公共属性值,
    1、在CrossPageTarget.aspx中设置<%@PreviousPageType VirtualPath="~/CrossPageSource.aspx"%>
    使用时:
    txtMsg.Text=PreviousPage.getUserName;
    2、使用<%@Reference VirtualPath="~/CrossPageSource.aspx"%>

    读取时:
    使用@Reference 具有强类型的特性,好处是可以通过Intellisense来直接访问

     protected void Page_Load(object sender, EventArgs e)
        {
    //将PreviousPage转换成与源网页相同的强类型
    ReferenceSource sourcePage = (ReferenceSource)PreviousPage;
    txtMsg.Text = "您输入的名字是:" + sourcePage.getUserName + " , " + sourcePage.city;
    }
    IsPostBack判断
    跨网页公布必须使用IsCrossPageePostBack这个属性来判断因此有下面的程序:
    protected void Page_Load(object sender, EventArgs e)
        {
    //将PreviousPage转换成与源网页相同的强类型
    if (PreviousPage != null)       //这里的检查时必须的,大家在用跨网页公布机制是务必做到这个程度,以保障程序的完整性
    {
    if (PreviousPage.IsCrossPagePostBack)
    {
    IsCrossPageSource sourcePage = (IsCrossPageSource)PreviousPage;
    txtMsg.Text = "您输入的名字是:" + sourcePage.getUserName + " , " + sourcePage.city;
    }
    }
        }
    跨网页公布的原理:
    1、来源网页跨网页公布到目标网页时通过Button按钮的PostBackUrl属性来指定目标网页,在用户按下Button后会导向目标网页
    2、目标网页将来源网页的ViewState另外存储一份后,则将来源网页的ViewState所存储的状态会被废弃掉,
    3、当目标网页用到previouspage对象时,系统会自动初始化与来源网页同一类型的Page(PreviewPage),并且在目标页的Page_Complete阶段
    将原先存储保留下来的ViewState还原到PreviousPage
    4、而previouspage表示一个与来源网页相同的新生实体,并且注入了原先所保留的ViewState状态,所以这就是为什么在目标也可以访问到
    来源页的原因
    如果ViewState很庞大是代表存储及还原的系统成本很高,故跨网页公布与QueryString单纯传参数两者的使用是请自行拿捏


    本文所有权归作者,欢迎转载,但是请指明出处 :http://www.cnblogs.com/fly871117 ,严谨用于商业用途
  • 相关阅读:
    JVM OOM处理
    Scala可变参数列表,命名参数和参数缺省
    Scala闭包
    Scala应用函数
    Scala函数字面量简化写法
    Scala函数字面量
    Scala中class和object的区别
    数据库的优化
    svn: warning: 'xxxxxx' is already under version control
    svn status 显示 ~xx
  • 原文地址:https://www.cnblogs.com/fly871117/p/1494872.html
Copyright © 2020-2023  润新知