解决方案 »

  1.   

    没有人回我就自己回了吧。
     父页面不能取到子页面的datagrid是因为easyui是用$.data(elements,'datagrid','datagrid的相关数据组装的对象')来缓存datagrid的。 这个值被保存在$.cache里。 而cache值在当前页面有效,弹出页是另一个cache,所以父页面的cache里没有这个datagrid属性,自然取不到。可是为什么cache只在当前页面有效,还没弄清。
      

  2.   

     我来吧  var datagrid  = $.find('iframe').get(0).contentWindow.$("#id");
      

  3.   

    额...已经结贴了,你这样只是取子页面的html元素,取datagrid不一样。 我摸索了好久才知道。 datagrid是把数据存在$.cache里的,每个单独的页面都有独立的$.cache,所以不同的页面间直接是取不到的,所以最后我在父页面调用了子页面的一个方法test,然后在test里取的datagrid。
    最后是优化成了一个公用js函数function datagrid(gridName,method)
    {
          return $("#"+gridName).datagrid('method');
    }调用时直接,var rows =   $.find('iframe').get(0).contentWindow.datagrid(gridName,'getSelections')就行了。
      

  4.   

    function datagrid(gridName,method)
    {
       return $("#"+gridName).datagrid(method);
    }
      

  5.   


    额,直接取是取不到的,datagrid里封装的是Jquery的$.data(selector,key,value) .在父页面调用datagrid,只能取到父页面里$.cache里保存的值。父页面与子页面各自维护着一个$.cache(只是亲测结果是如此,原因不详)。 所以只能在父页面里调用子页面的Js函数,然后子页面里调用datagrid才行。
      

  6.   

    楼主,怎么解决的 ,给我个demo