我有一个JQGrid和一个直到昨天工作正常的子网格(简单的,不是网格)。然后我发现了强大的标志loadonce = true,它使我可以免费分页,搜索等。但是,因为我已经启用加载子网格停止工作,当我点击加号来扩大一行时,加载框出现,并没有消失。如果我删除loadonce = true,那么一切都按预期工作。这里是我的JavaScript,在此先感谢。如果loadonce设置为true,JQGrid子网格不会加载
$("#testsTable").jqGrid({
mtype: "POST",
url: "GetCurrentStatusServlet",
datatype: "xml",
colNames:['Suite', 'Test Case', 'Last Update', 'Status','Actions'],
colModel:[
{name:'suite',index:'suite', width:50, sorttype:"int"},
{name:'name',index:'name', width:300, formatter:nameFmatter},
{name:'lastupdate',index:'lastupdate', width:150, formatter:"date"},
{name:'status',index:'status', width:50, formatter: fmt_status,align:"center"},
{name:'act',index:'act', width:100, align:"left"}
],
rowNum:150,
width:1200,
height:800,
rowList:[150,300,500],
pager: $('#pager1'),
viewrecords: true,
multiselect: true,
caption: buildName,
sortorder: "asc",
sortname: "suite",
subGrid: true,
subGridUrl : "GetCurrentSubGridStatusServlet",
subGridType: "xml",
subGridModel: [ {
name: ['Test Method', 'Last Update', 'Status'],
width : [250, 200, 100],
params: ['name']
}],
loadonce: true,
gridComplete: function(){
var ids = $("#testsTable").jqGrid('getDataIDs');
for(var i=0;i < ids.length;i++){
var cl = ids[i];
var test = new Array();
test.push($("#testsTable").getCell(cl, 'name'));
run = "<button class=\"runBtn\" onclick=\"runTests('"+test+"')\">Run</>";
log = "<button class=\"logBtn\" onclick=\";\">Log</>";
$("#testsTable").jqGrid('setRowData',ids[i],{act:run+log});
}
setupButtons();
}
});
$("#testsTable").jqGrid('navGrid','#pager1',{add:false,edit:false,del:false});
如果使用'subGridType:“xml”',至少在理论上''loadonce:true'参数应该没有问题。当然包括'loadonce:true'后面执行另一个代码。如果你有一个实例,url可以帮助分析问题。如果您发布了更多可用于重现问题的完整示例,我可以尝试帮助您。 – Oleg 2011-04-15 22:05:47
任何示例都可以。添加loadonce = true例如http://www.secondpersonplural.ca/jqgriddocs/_2eb0giikm.htm – Tarelli 2011-04-16 00:18:27
也发现了类似的问题http://stackoverflow.com/questions/4316422/jqgrid-problem-binding-subgrid – Tarelli 2011-04-16 00:22:49