现在有一个框架,上面A,右边B,左边一个树。     A.ASPX TextBox1
____________________
TREE   |   B.ASPX
       |   (在这里取值,页面不一定)
现在想在B页面的服务器端取得A页面里的一个TextBox的值,怎么取?

解决方案 »

  1.   

    在TextBox Changed事件中加入:赋值给公共Session变量
      

  2.   

    window.parent.frames("A的frame名").document.all.textbox的名称
      

  3.   

    window.parent.frames("A的frame名").document.all.textbox的名称
    ____________________________
    正解!将上面的textbox付值到下面的隐藏空间(这个知道吧,主意要runat=server)中,然后在页面提交时就可以在服务段获取隐藏空间的值作为将上面的textbox的值。就是倒一下手!!!!
      

  4.   

    top.frames("frmTest").document.all.txtTest.value
    这只能是从客户端取值,从服务器端取可能还要转两个弯
      

  5.   

    你是想在载入B.Aspx时,服务端获取到A中的textbox的值,还是在B.Aspx postback回服务端时获取?
      

  6.   

    用SESSION不太好,可能会超时。用JS
    window.parent.frames("A的frame名").document.all.textbox的名称
    的话,就只能在B.aspx页面里用,如果换一个页面就用不成了。我希望是不管是哪一个页面,不通过SESSION,都可以取到a.aspx里的Textbox的值。
    有这种方法吗?
      

  7.   

    在B页面使用Javascript取得A页面中TextBox控件的值,然后调用submit()方法提交到B页面的后台,在Page.PostBack块中使用Request对象获得值
      

  8.   

    在B页面使用Javascript取得A页面中TextBox控件的值,然后调用submit()方法提交到B页面的后台,在Page.PostBack块中使用Request对象获得值这种方法倒是可以使用,但必须要提交一次并改变页面的URL。还有没有别的好方法?难道必须通过JS吗?不可以直接从服务器端取得吗?
      

  9.   

    你是想在载入B.Aspx时,服务端获取到A中的textbox的值,还是在B.Aspx 回服务端时获取?
    载入时和postback时方法有什么不一样吗?
      

  10.   

    >>window.parent.frames("A的frame名").document.all.textbox的名称
    >>的话,就只能在B.aspx页面里用,如果换一个页面就用不成了。
    其它页面只要是在框架B里打开的都可以用这个办法。>>我希望是不管是哪一个页面,不通过SESSION,都可以取到a.aspx里的Textbox的值。
    >>有这种方法吗?
    想在服务端获取?a.aspx里的Textbox的值远在客户端,想在服务端获取不太现实吧。
    用JS + postback是好像是没有办法的办法了吧。
    楼主是想实现一个怎么样的功能?
    当务之急是把你要实现的业务逻辑说清楚,大家更好为你提供解决方案,而不是在技术层面不断钻牛角尖,先把问题解决了再慢慢钻技术 :-)
      

  11.   

    window.parent.frames("A的frame名").document.all.textbox的名称
    这个较好
      

  12.   

    dolfen(海之豚)说得很有道理~我的目的是:
    在A.aspx里保存用户名,然后在B.aspx里取出用户名,判断它的权限。以前都是用SESSION做的,常会过期。客户要求只要页面开着就永不过期。用COOIKE要改设置被否决,所以我想用这种方法看行不行。
      

  13.   

    window.parent.A的frame名.document.getElementById("TextBox").value
      

  14.   

    如果两个frame不是同一个网站下面的话,将会提示没有权限。必须是在同一个网站下
      

  15.   

    不知道可不可以通过再B页面用window.parent.frames("A的frame名").document.all.textbox的名称取值,然后保存在B页面的一个隐藏字段里,当需要时再从B页面取就可以了。
      

  16.   

    >>以前都是用SESSION做的,常会过期。客户要求只要页面开着就永不过期。用COOIKE要改设置
    >>被否决,所以我想用这种方法看行不行。1、浏览器的缺省设置就是允许使用cookie的,很多网站也都是用到Session的,所有浏览器使用cookie是很正常的事
    2、你的这个要求使用cookie正合适,cookie分两种:一种是指定了过期时间的,这种cookie是会保存到客户端的硬盘,以便在过期前访问这个网站能够读取到这个cookie;另一种是没有指定过期时间的cookie,这种cookie只是存在客户机器的内存中,在关闭浏览器后销毁。你这种情况可是使用第二种cookie来保存用户的信息,只要浏览器开着cookie就存在,关闭cookie就消失。关于cookie的进一步信息,请参考我的blog:http://blog.csdn.net/chnking/archive/2003/06/10/12447.aspx
      

  17.   

    谢谢各位,我已经解决了。方法是:
    写一个基类,然后每个页从基类继承,在基类给每个页增加一个TEXTBOX,通过JS代码从A页面传值到每个页的新增TEXTBOX。
    然后,从基类里获取此新增TEXTBOX的值,即可每个页都得到A页面的TEXTBOX值。