今日遇到一个奇怪问题,datagrid就是不加载,debug看了一下,触发对象貌似不正常。使用jquery或者dom去查找元素都找不到,但是easyui也不报undifined异常,很是奇怪。
问题出现环境:页面三层结构,第一层是一个datagrid,点击其中链接通过新建window进入第二层,第二层包含普通form元素,点击链接通过新建window进入第三层,在第三层使用datagrid时出现问题。。
代码如下:
第一层:
_pidT.val(pid);
_makerIdT.val(makerId);
_productInfoWindow.window({
title:'商品详情',
href:productUrls.productInfo,
fit:true,
minimizable:false,
maximizable:false,
collapsible:false,
draggable:false,
resizable:false,
onClose:function(){
_productInfoWindow.window('destroy');
}
});
第二层:
_skuListWindow.window({
title:'商品库存',
href:productInfoUrl.skuList,
width:800,
height:500,
modal : true,
minimizable:false,
maximizable:false,
collapsible:false,
draggable:false,
resizable:false,
onClose:function(){
_skuListWindow.window('destroy');
}
});
第三层:
html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table id="skuGrid"></table>
<script type="text/javascript" src="/daojia-oms/resources/js/product/sku_list.js"></script>
</body>
</html>
js:
_skuGird.datagrid({
method : 'post',
url : skuUrls.listSku,
queryParams : {'pid' : _pidT.val()},
cache : false,
striped : true,
columns : [[
{
title : '颜色',
field : 'color',
width : '15%'
},{
title : '尺寸',
field : 'size',
width : '15%'
},{
title : '成本价',
field : 'price',
width : '15%'
},{
title : '库存',
field : 'amount',
width : '15%'
},{
title : '状态',
field : 'status',
width : '20%',
formatter : function(value,row,index){
var result = '';
if(0 == value){
result = "已上架";
}else if(1 == value){
result = "已下架";
}
return result;
}
}
]],
loadFilter : function(data){
return data;
}
});
问题解决办法:既然找不到触发元素,那就先找到他:var _skuGird = $("#skuListWindow table:eq(0)"); (直接通过id竟然抓不到,只好换种方式),问题暂时解决。
疑惑:1.datagrid找不到触发元素,为什么没报错;2.通过id为什么抓不到元素(怀疑与使用window新开页面有关)
在三层窗口结构中,第三层的datagrid无法加载,虽然jQuery和DOM查找都未找到元素,但EasyUI未抛出undefined异常。问题出现在通过window新建页面的第三层。通过修改代码,使用`$("#skuListWindow table:eq(0)")`找到datagrid元素,解决了问题。疑问在于datagrid未报错及通过ID无法获取元素的原因可能与window新页面有关。

2503

被折叠的 条评论
为什么被折叠?



