请高手指点一下.
我现在有一个页是a.aspx用于输入商品进货单的明细,然后其中有商品名的一个TEXT输入,输入商品名后如果点"查询"钮会在另一个页面B.aspx打开已存在这个商品名相关的所有商品记录(我用的是gridview),在这个B.aspx上可以选择符合的一条记录,然后问题就是,如何把B.aspx关闭后就会在a.aspx中填充商品名,规格之类的信息到相关的TEXT上?

解决方案 »

  1.   

    用js脚本。
    页间传值:在A页面中用JAVASCRIPT弹出B页面
    Response.Write("<script Language=JavaScript>");
    string url="B.aspx";
    Response.Write("ChildWindow = window.open('"+url+"', '111', 'width=220,height=200,top=180,left=280,toolbar=no,status=yes,location=no,menubar=no,directories=no,scrollbars=no,resizable=no')");
    Response.Write("</script>");
    在B页面中用JAVASCRIPT回传参数
    Response.Write("<script Language=JavaScript>");
    Response.Write("window.opener.document.forms['newmessage'].elements['Return'].value ='"你要回传的STRING"';");
    Response.Write("window.close();");
    Response.Write("</script>");Return是A页面中的TEXTBOX 的ID,newmessage是A页面的form名
      

  2.   

    用js,window.open("b.aspx");在b.aspx页面上面,用js写window.opener.document.getElementById("控件ID").value=选择的值
      

  3.   

    我按1楼说的改成把b.aspx中的按钮方法改成 Response.Write(" <script Language=JavaScript>"); 
    Response.Write("window.opener.document.forms['Stockdetailadd.aspx'].elements['CommodityName'].value ='"+GridView1.SelectedRow.Cells[0].Text+"';");
    Response.Write("window.opener.document.forms['Stockdetailadd.aspx'].elements['jhpid'].value ='" + Session["id"] + "';"); 
    Response.Write("window.close();"); 
    Response.Write(" </script>"); 
    可是没作用啊?
    'Stockdetailadd.aspx'是就是a.aspx页面,
      

  4.   

    用地址栏传值如何?
    我是这样想的:
    在b.aspx页面上,你选择上一个符合的一条项了,此时,在gridview中应该有相应的唯一的id,id不用显示出来。只是在连接时就已经自动生成了。
    你点了这个合适的后,页面指指向a.aspx并且有类似的信息,如:a.aspx?id=2 ,其中2是你选择合适的那个商品id,这样就把值传到a.aspx页面中了,之后,再用把id的取到就可以了,之后再从数据库中查找并显示出来。
      

  5.   

    这样作的话是可以传便打开的a.aspx是不是还是原来的那个a.aspx页面实例就难说了
      

  6.   

    Return是A页面中的TEXTBOX 的ID,newmessage是A页面的form名注意这句话。<form id="newmessage">
    </form>是form的id ,不是 "document.forms['Stockdetailadd.aspx']."您老这“Stockdetailadd.aspx”是 Page Name。