top.frame["left"].Form1.textbox1.value=top.frame["right"].Form1.textbox1.value;

解决方案 »

  1.   

    index.aspx我发的是全部代码阿,
    ab.aspx是:
    sub subbutton_Click
    session("name") = textbox1.text
    end sub
    ac.aspx:
    Sub Page_Load
    textbox2.text = session("name")
    end sub
    谢谢!
      

  2.   

    你看大家都在说应该用javascript来写,建议你贴出你怎么使用
    parent.frame[1].Text1.value=parent.frame[0].Text2.Text
    这一段代码用session好像挺麻烦的,ac.aspx和ab.aspx是同时出现在页面上的,在ac.aspx的page_load事件中,Session还没有值。在单击ab.aspx之后,才对Session赋值,但这是你需要再次触发ac.aspx的page_load事件,才能得到session值,逻辑上有点混乱。建议用javascript简单明了。
      

  3.   

    如果控件都是WEB控件,用SESSION还行,若是客户端的可以在客户端写事件
    SUB BUTTON1—ONCLICK()
        Window.Parent.frame("left").text2.innertext=text1.innertext
    END SUB如TEXT1是WEB控件,可以让SESSION等于其直,再放一个隐藏的DIV ID="A",让它=SESSION
    然后就可以引用了。
      

  4.   

    to: oceanh(人身难得,狂心难歇
    index.aspx:
    <HTML>
         <frameset cols="293,*" frameborder="0" framespacing="5" runat="server" ID="Frameset1">
        <frame id="ab" name="ab" src="ab.aspx">
        <frame id ="ac" name="ac" src="ac.aspx">
        <frame noresize>
         </frameset>
    </HTML>
    ab.aspx
    <HTML>
    <BODY>
    <asp:textbox id="textbox1" runat="server" ></asp:textbox>
    <asp:button id="subButton" runat="server" ></asp:button>
    </BODY>
    </HTML>
    ac.aspx
    <HTML>
    <BODY>
    <asp:textbox id="textbox2" runat="server" ></asp:textbox>
    </BODY>
    </HTML>
    用session是出现了你所说的问题,要再次触发ac.aspx才能取到值。
    我一般用vb写的
    你能不能用javascript帮我写的详细一点
      

  5.   

    ab.aspx代码这样写:
    sub subbutton_Click
        RegisterStartupScript("setValue","<script language='javascript'>parent.frame[1].Text1.value=parent.frame[0].Text2.value;</script>")
    end sub试试,如果报脚本错误,可以检查各元素名称是否正确。
      

  6.   

    刚才可能不行,frame[1] 应该是frames[1]吧.试试这个
    RegisterStartupScript("setValue","<script language='javascript'>parent.ab.document.all.Text1.value=parent.ac.document.all.Text2.value;</script>")
      

  7.   

    会报这样的错误
    parent.frame[1]是Null
    什么原因?
      

  8.   

    现在是这样的错误:
    parent.ab.document是Null
      

  9.   

    重新刷新右边的页面,左边按钮的ONCLICK事件来刷新右边的页面,并带一个参数表示左边页面的TextBox值,在右边页面的Load事件中再为TextBox赋
      

  10.   

    我试验过了,没有问题的
    不过你给的代码变量也太混乱了,我只有照着你的重写一个实例:
    index.html
    <HTML>
         <frameset cols="293,*" frameborder="0" framespacing="5" runat="server" ID="Frameset1">
        <frame id="ab" name="ab" src="ab.aspx">
        <frame id ="ac" name="ac" src="ac.aspx">
        <frame noresize>
         </frameset>
    </HTML>
    ab.aspx<%@ Page language="c#" Codebehind="ab.aspx.cs" AutoEventWireup="false" Inherits="demo.Test.ab" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 
    <script language='javascript'>
    function setValue()
    { parent.ac.document.all.textbox2.value=document.all.textbox1.value;
    }
    </script><HTML>
    <BODY>
    <form runat="server" id="form1">
    <asp:textbox id="textbox1" runat="server"></asp:textbox>
    <asp:button id="subButton" runat="server" Text="Set"></asp:button>
    </form>
    </BODY>
    </HTML>
    后台代码:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    namespace demo.Test
    {
    public class ab : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.TextBox textbox1;
    protected System.Web.UI.WebControls.Button subButton; #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    InitializeComponent();
    base.OnInit(e);
    }
    private void InitializeComponent()
    {    
    this.subButton.Click += new System.EventHandler(this.subButton_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void subButton_Click(object sender, System.EventArgs e)
    {
    RegisterStartupScript("setValue","<script>setValue();alert('ok');</script>");
    }
    }
    }
    ac.aspx
    <HTML>
    <BODY>
    <form runat="server" id="frm2">
    <asp:textbox id="textbox2" runat="server"></asp:textbox>
    </form>
    </BODY>
    </HTML>
    测试通过!
      

  11.   

    忘了,还要把后台代码这句
    this.Load += new System.EventHandler(this.Page_Load);去掉!
      

  12.   

    我把代码栲过来,但是报错说using没有申明
    我一般都用vb来写,难道哪里设置有错么?
      

  13.   

    我的环境是vb的,建成一个ab.aspx会自动生成一个ab.aspx.vb
    这样用c#就出错了
      

  14.   

    VB代码一样啊,你把ab.aspx除掉第一句<%@ Page...%>全部复制到你的页面中
    然后双击那个set按钮,在自动生成的后台代码里写:
    RegisterStartupScript("setValue", "<script>setValue();alert('ok');</script>")
    其他的页面都不变,一切OK。
      

  15.   

    ok了
    非常感谢,这个问题郁闷了我好多天了
    我一直用vb,没想到用javascript来解决