在用jquery easy ui 中遇到一个问题,在列表页面需要根据某一条选中的记录查询该记录的子记录,弹出dialog展现,easy ui的实现方式是在父页面把弹出的子页面数据都写好,逻辑都写在父页面上,个人总觉得在子页面上自己去load数据更好,所以就在子页面弹出的时候 去调用datagrid load数据,可是只有第一次的时候load数据了,单击别的记录 弹出的dialog还是第一次的数据,加上cache :fasel 以及时间戳都不好使,加上 dialog.destroy remove 也不好说,直接空白了,后来发现在调用remove的时候 把要弹出dialog的div也给remove了,所以现在的解决办法是:
在父页面 div初始是0
<div id="detail0"></div>
</body>
在js方法中
var index=0;
var detail = $("#detail"+did);
detail.append(url).dialog({
autoOpen: true,
modal: false,
height: 500,
width: 720,
resizable: true,
title: "子页面",
onClose: function() {
detail.remove();
did=parseInt(did)+parseInt(1);
$("#body").append("<div id=detail"+did+"></div>");
}
});
在onClose方法中 remove完后,在body中新增一个div 然后id自增,这样每次remove后就会新增一个新的div来弹出dialog,就不存在每次都load第一次的数据的问题,不知道是不是还有别的更好的方法,总之我是先这样解决的