$(function () { $.ajaxSetup({ cache: false }); $.parser.parse(); $("#dg").datagrid({ url: $("#rolesUrl").val(), toolbar: "#toolbar", title: "角色", pagination: true, rownumbers: false, singleSelect: true, fitColumns: false, width: 668, height: 400, columns: [[ { field: "RoleName", title: "角色名", width: 319 }, { field: "Status", title: "状态", width: 319, formatter: function (value, rowData, rowIndex) { if (rowData.Status == true) { return "有效"; } else { return "失效"; } } } ]], view: detailview, detailFormatter: function (index, row) { return '<div id="ddv-' + index + '" style="padding:5px 0"></div>'; }, onExpandRow: function (index, row) { var detailContent = "项目:<ul>"; if (row.Tasks.length > 0) { $(row.Tasks).each(function (index, item) { detailContent = detailContent + "<li>" + item.TaskName + "</li>"; }); } detailContent = detailContent + "</ul>"; $('#ddv-' + index).panel({ border: false, cache: false, content: detailContent, onLoad: function () { $('#dg').datagrid('fixDetailRowHeight', index); } }); $('#dg').datagrid('fixDetailRowHeight', index); } }); } ); function newRole() { var url = $("#addUrl").val(); var dlg = $("#opsDialog"); dlg.dialog({ width: 500, height: 400, closed: true, cache: false, href: $("#addUrl").val(), modal: true, buttons: [{ text: "保存", iconCls: 'icon-add', handler: function () { } }, { text: "取消", iconCls: 'icon-cancel', handler: function () { $("#opsDialog").dialog("close"); $("#opsDialog").dialog("destroy"); } }], onLoad: function () { $("#roleName").validatebox({ required: true, missingMessage: "请输入角色名" }); }, onDestroy: function () { $("#dg").datagrid(“reload”); } }); dlg.dialog("open"); }
销毁Dialog的时候不管有没有reload“#dg”,都不行。
JQuery版本:1.8.3
easyui版本:1.3.2
补充一点,FireBug报的错如下
跟踪了一下,_580是“expandRow”
expandRow应该是datagrid里的方法,第一次加载的时候相关的JS引用进去了,但是之后的操作只是弹出一个窗口然后关闭销毁,这样就找不到expandRow这个方法了。。。???
问题解决了,在销毁Dialog的时候重新加载datagrid-detailview.js, 但是还是想不通为什么datagrid-detailview.js会丢失,还望哪位大神赐教,谢谢了