````````我用按钮打开了一个模式窗口``
       ````````在模式窗口中放了一个DATAGRID```要怎样才可以点击DATAGRID里面的行``传一个值到原来的父窗体啊``
         我用URL传值的时候``在父窗体总是接收不到值``
`````````
       关于传值问题``还有哪些更好的办法``啊``
        高手指点``

解决方案 »

  1.   

    `````可是SESSION难于维护````
                       除了SESSION还有什么方法啊``
      

  2.   

    用先赋到隐藏域然后用 javaScript 获取
      

  3.   

    <script>opener.window.document.all["父窗口的控件"].value=要传的值;</script>
      

  4.   

    DATAGRID 显示后是table,按你的需求需要点一行触发click,那就要在每个tr上面绑定onclick,然后那一行里面的值,传回去就可以了。
    直接在dg里面放个控件,点然后传值多简单啊。
    模式窗口 传值不需要我说了吧
      

  5.   

    function UpDataJob(id)
    {
      window.showModalDialog('UpDataJob.aspx?id='+id,'','dialogWidth:610px;dialogHeight:380px');
      javascript:__doPostBack('LinkButton1','');
    }前台绑定ID
    <a href="#" onclick="UpDataJob('<%# DataBinder.Eval(Container.DataItem, "ID") %>');"
                                                                                                        style="font-size; 12px">修改</a>
      

  6.   

    使用session可以的 好像还可以使用全局变量试一下
      

  7.   

    <script>opener.window.document.all["父窗口的控件"].value=要传的值;</script>
               这样好象不能实现诶`
             应该没这么简单吧``````````
    ```````````````````````````它提示的错误是opener.window为空或者不是对象``
              不知道``你是怎么去打开那个模式窗口的啊``
    ````````它又怎么能找的父窗体的控件啊``
                   呵呵``````````本人`不是很懂``
    ````请详解一下吧``
      

  8.   

    还有``那为SZC21大哥```
          本人是新手````
     我用你的第二种方法```在DG里面放一个按钮列```
    然后在DataGrid1_ItemCommand中写代码``要怎样写才能``关闭子窗体`然后把值传到父窗体啊
     ````````呵呵``
    恩``
       网页有点问题``
    不能直接问你``希望你看见了``帮帮忙啊``
      

  9.   

    父窗体:
    <script>
    function a()
    {
    var m = window.showModalDialog(...);//用m接收值
    }
    </script>
    子窗体
    <script>
    function b()
    {
    window.returnValue = "xxx";//xxx为你想要回传的值
    }
    </script>
    在主窗体关闭事件中调用b();还有象SZC21说的,在DataGrid绑定的时候把值直接绑到一个script方法上就完了被。
    比如在子窗体的DataGrid的ItemDataBound事件里写:
    if(e.Item.ItemIndex>-1)
    {
    string s=e.Item.Cells[0].Text + "|" + e.Item.Cell[1].Text;
    e.Item.Attributes.Add("ondbclick","b('"+s+"')");
    }
    然后子窗体中方法
    <script>
    function b(t)
    {
    window.returnValue = t;
    window.close();
    }
    </sciprt>
      

  10.   

    这个看你要达到的效果了。
    我上面的方法,新窗口是通过JS打开的:window.open('new.aspx');
    新窗口里的DataGrid的DataGrid1_ItemCommand事件里输出上面的JS就可以了:
    string js="<script>opener.window.document.all['父窗口里的控件名'].value='"+要传的值+"';window.close();</script>";
    Response.Write(js);
      

  11.   

    <script>opener.window.document.all["父窗口的控件"].value=要传的值;</script>
    ---------------------------------
    模式窗口能行?????????????