我有一个使用subGrid的网格(4.1.1版本)。当网格第一次加载时,我可以毫无问题地打开subGrids,直到将主网格向下滚动到加载更多的数据。在此之后,没有子网格将打开或关闭。如果我点击加号图标,我会看到“加载.”,但是什么也没有发生。我甚至不能关闭以前打开的subGrids。
这是我的网格定义:
$("#grid_sites").jqGrid({
url:'getgridxmlsites.php',
postData: {detailid: function() {return $('#hdnDetailId').val(); }},
datatype: 'xml',
height: 260,
width: 832,
shrinkToFit: false,
caption:'',
colNames :['studydetailid', 'Site', 'Name', 'Status', 'Location'],
colModel :[
{name:'detailid', index:'detailid', width:0, hidden: true },
{name:'sitenumber', index:'sitenumber', width:60, align:'right'},
{name:'name', index:'name', width:230},
{name:'status', index:'status', width:110, align:'center'},
{name:'location', index:'location', width:74}
],
pager:'pager_sites',
scroll: 1,
viewrecords:true,
sortable:true,
sortname: 'sitenumber',
autowidth: true,
pgbuttons: false,
loadonce: true,
// gridview: true, // Cannot be used when using subGrid.
onSelectRow: function(id){ gridRowSelect(id) },
subGrid: true,
subGridUrl: 'getgridxmldatabysite.php',
subgridtype: 'xml',
subGridModel: [{
name: ['Owner', 'Phone', 'Status'],
width: [120, 100, 100],
align: ['left', 'left', 'left'],
params: ['detailid']
}],
subGridOptions: { reloadOnExpand : false }
});希望你能帮上忙。
发布于 2011-11-27 01:00:44
我也遇到了类似的问题。看起来,jqgrid中的addSubGrid函数正在添加一个click事件,以将子网格切换到表中的每一行(而不仅仅是刚刚加载的行)。
这导致新行运行良好,但第一个设置迅速展开,然后折叠(两个单击处理程序)。当另一组数据被加载时,第一组行可以正常工作(尽管它们会再次展开、折叠和展开),但是第二组将不再工作。
当我试图找出是否遗漏了JSON中的一些行元数据时,我在addJSON和addSubGrid的组合中有点迷失了。现在,我只是修改了这句话:
$(ts.rows[i].cells[pos]).bind('click', function(e) {至:
$(ts.rows[i].cells[pos]).unbind('click');
$(ts.rows[i].cells[pos]).bind('click', function(e) {一切似乎都如期而至。这是jqGrid的4.2.0版本。我仍然不确定这是错误、配置问题还是数据问题,但至少我又开始工作了。
发布于 2014-06-22 04:41:30
在您的配置中,不设置rowNum。因此,我相信jqgrid将使用默认的rowNum,即20,这将导致滚动问题,原因是Robert提到的单击绑定问题。
另一种无需更改jqgrid代码而解决此问题的方法是将rowNum设置为-1。这将只获取所有行,这应该可以,因为您使用的是本地数据。但是,在以前的4.6.0版本中,此修复可能不起作用。(有关将How to show all rows in the jqGrid?设置为-1的更多信息,请参见rowNum )。在4.6.0之前的版本中,我认为主要的解决方案是将rowNum设置为大量。
https://stackoverflow.com/questions/7814927
复制相似问题