毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

easyui-datagrid父页面不能直接取到子页面的datagrid

更新时间:2014-4-15:  来源:毕业论文

首先是两行代码如下:
父页面$.dialog的callback函数中:$("#myDatagridList",this.iframe.document.body).attr('style');
lhgdialog弹的子页面的一个测试函数中: $("#myDatagridList").attr('style');
以上两个方法都能取到值为:'display:none'
但很奇怪,我想取datagrid时子页面能行父页面却就不行了。如下:
父页面:$("#myDatagridList",this.iframe.document.body).datagrid('getSelections');//会报 $.data(selector,'datagrid')为null,不能执行getSelections方法

今天调试了一整天,才大概发现一处奇怪的地方。 就是父页面引用了easyui的JS,子页面也引用了。然后我在调试时,就发现脚本里有两组完全相同的JS,调试父页面时断点走父页面的JS,调试子页面时,断点就走子页面的JS。
我在想是不是因为两个页面的JS文件是两个。所以$.datagrid在保存Jquery对象时也保存成了两个?所以子页面的$.data(selector,'datagrid')有值,而父页面中的easyui源码中的$.data(selector,'datagrid')因为datagrid在之前绑定<table>时走的是子页面的easyui.js而没有走父页面的easyui.js,所以才没有值?

虽然想取datagrid还有其他方法,比如在父页面调用子页面的test函数,test中取到datagrid然后回传。 但无奈确实很纠结为什么不能直接取? 是规定如此? 还是我哪里遗漏了?

另外我也查了很久$.data()这个方法。easyui的API中有这个方法,但只有两个参数:key-value。明显跟eastui源码中的参数格式不一样啊,虽然知道源码中这个方法是什么意思,但也许知道原理后就能理解为什么父页面娶不到子页面的datagrid了。
父页面不能取到子页面的datagrid是因为easyui是用$.data(elements,'datagrid','datagrid的相关数据组装的对象')来缓存datagrid的。 这个值被保存在$.cache里。 而cache值在当前页面有效,弹出页是另一个cache,所以父页面的cache里没有这个datagrid属性,自然取不到。

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

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。