我使用了一个网页对话框,在我使用结束后,我想通过一个"确定"按忸结束此对话框,并同时将值传递给父窗口,使得父窗口的一个TextBox控件显示出我传递的值.
我使用了
<script language="javascript">
parent.docuement.all.TextBox1.value="adfasdf";
</script>
但是每次运行的结果总是本窗口的一个控件TextBox1控件得到该值,父窗口不变
请问怎么实现这个呀求教大家了
帮帮忙
万分感谢!!!

解决方案 »

  1.   

    opener.docuement.all.TextBox1.value="adfasdf";
      

  2.   

    self.opener.document.all.TextBox1.value="adfasdf";
      

  3.   

    不行呀
    报错
    opener.document为空或者不是对象呀
      

  4.   

    也不行
    self.opener.document为空或者不是对象
      

  5.   

    parent.窗体名.docuement.all.TextBox1.value="adfasdf";
      

  6.   

    当然,你也可以把父窗口的文本框的名称传的子页面
    例如:window.open("childform.aspx?text=TextBox1");子窗体:
    <script language="javascript">
    var txt=eval("self.opener.document.<%=Request["text"]%>"); 
    txt.value=="adfasdf";
    window.close();
    </script>
      

  7.   

    opener.表单名.控件名.value="";
    opener.Form1.TextBox1.value="aaa";
      

  8.   

    parent.docuement.getElementById("TextBox1").value="adfasdf";
      

  9.   

    to  gxboy(Blin 小学生学.NET) 请问窗体名是怎么得到的呀
      

  10.   

    to
    swordragon(古道热肠)
    你的方法我已经试过了
    没有用
      

  11.   

    <html>
    <head>
    <title></title>
    <script language='javascript'>
    function dd()
    {
    var answer=window.prompt("What's your name?","");
    if(answer)
    {
        mytxt.value=answer;
    }
    } </script>
    </head><body>
    <input type="button" value="dd" name="mybtn" onclick="dd()">
    <input type="text" name="mytxt">
    </body>
    </html>
      

  12.   

    我想我忘了说了
    我的父窗口中使用了
    <iframe></iframe>分栏结构
    其中<iframe name="right" align="top" marginWidth="0" marginHeight="0" src="document.aspx" frameBorder="0" width="100%" scrolling="no" height="845" style="WIDTH: 112.36%; HEIGHT: 845px"></iframe>
    TextBox1位于document.aspx文件中
      

  13.   

    建议使用Session[""]来实现,在最后点确定时候对父窗口进行刷新
      

  14.   

    你是用什么打开子窗口的呢?window.open吗?还是window.showmodaldialog啊?
      

  15.   

    那你参考一下以下代码:
    父窗口:
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(Session["get"] != null && Session["get"].ToString() != "")
    {
        this.TextBox1.Text = Session["get"].ToString();//得到子窗口返回的值
    }
    }
    private void Button1_Click(object sender, System.EventArgs e)//弹出子窗口
    {
    Response.Write("<script language='javascript'>\r\n");
    Response.Write("var intReturn = showModalDialog('WebForm2.aspx ','','dialogWidth:450px;dialogHeight:230px;center:Yes');\r\n");//弹出一个新窗口
    /*通过判断返回值决定传递哪些值*/
    Response.Write("if(intReturn == 1)\n\r");

    Response.Write("self.location=\"parent.aspx" + "\";\n\r");

    Response.Write("</");
    Response.Write("script>");
    }
    子窗口:
    private void Button1_Click(object sender, System.EventArgs e)//子窗口的确定事件
    {
        Session["get"] = this.TextBox1.Text;//设置你要返回的值,保存在Session中    /*关闭子窗口*/
        Response.Write ("<script language=\"javascript\">\n\r");
        Response.Write("window.returnValue=1;\n\r");
        Response.Write("window.close();\n\r");
        Response.Write("</");
        Response.Write("script>");
    }
      

  16.   

    有什么简便的方法吗
    我觉得可以直接使用脚本写出来的呀
    不需要重新定位的
    但是非常感谢 stoneallen
      

  17.   

    你如果用window.showmodaldialog就不要在子窗体写往文本框里写字符串的代码,在父窗体写子窗体:
    window.returnValue="kasdfjkasdfj";父窗体:
    var retval = window.showModalDialog("childform.aspx", "", "status:off;dialogHeight:520px;dialogWidth:580px;");
    document.frames["right"].document.getElementById("TextBox1").value=retval;
      

  18.   

    如果你子窗口的确定事件是在后台写的话,用脚本是没用的,我试过N次了,也问过很多人都没人知道,不象window.open可以用opener.Form1.TextBox1.value="aaa";之类给父窗口的控件直接赋值。