具体描述如下:框架页All.aspx共有3个框架:topFrame(上), LeftFrame(左) 和 mainFrame(右)
框架页All.aspx的html源中,默认写的mainFrame中呈现页面是welcome.aspx,是一个欢迎界面。
左边Left.aspx是一个tree,点击tree中的不同链接,右边mainFrame会呈现相应的页面。现在遇到的问题是:假设用户点了左边tree的一个链接,右边mainFrame中的页面相应转到step2.aspx,可此时一点击IE浏览器上的“刷新”按钮(或按F5),整个框架页All.aspx会重新刷新,此时的右边mainFrame又变成了原始的welcome.aspx欢迎界面,而不是当前的step2.aspx了,状态没有记住。请问如何记住这个状态,使mainFrame还保留当前的step2.aspx?

解决方案 »

  1.   

    Server.Transfer();把main里面的换了就可以了...
      

  2.   

    楼上说的这句话应该写到什么地方呢?
    问题是刷新的时候,mainFrame中不一定呈现的是哪个页面啊,这取决于用户点了左边tree的哪个节点。不好意思,楼上两位可不可以再说得详细一些呀?还不是很明白呀,“Server.Transfer()”是写在哪里的?框架页All.aspx的Html源里吗?在刷新事件中吗?
    Transfer括号中具体写什么呢?因为具体的页面不是确定的呀………………
      

  3.   

    这个基本上没有直观的解决办法。或者干脆说:没办法。ajax也是同样地,会毁掉需要交互状态的页面,所以对交互界面是鸡肋,只能用于根本不回发或者回发之后就直接刷新到全新界面的地方。通常,交互界面需要将局部页面做成控件。这样,开发控件的时候可以按照单独应用ui的需求去设计(减少耦合),同时又能与其它控件宿主协同运行在同一个页面上。一个小程序的例子:http://cmda618.gnway.net/w2cms(服务器比较慢)。asp.net的界面应用开发,从控件开始构造和设计。更底层的知识都是基础。不要从aspx入手去考虑界面开发,至少你可以把应用做成ascx。