我能够从jqgrid演示页面中的示例实现分组功能.但是我不想默认启用分组,但是在更改选择列表时我想启用分组功能.我尝试了几种选择,但没有一种是成功的?有人可以帮助我,可能是我错过了什么.这是我的代码......
$("#dynamicGrouping").change(function() {
var value = $(this).val();
if(value) {
if(value == '') {
$('#grid').jqGrid('groupingRemove', true);
} else {
$('#grid').jqGrid('setGridParam', { grouping:true });
$('#grid').jqGrid('groupingGroupBy', value);
$('#grid').trigger('reloadGrid');
}
}
});
Run Code Online (Sandbox Code Playgroud)
我的网格定义:
jQuery(function() {
$('#grid').jqGrid({
.....
.....
grouping: false,
groupingView : {
groupField : ['field_name'],
groupColumnShow : [true],
groupText : ['<b>{0} - {1} Item(s)</b>'],
groupCollapse : false,
groupOrder: ['asc'],
groupDataSorted : true
},
.......
.......
});
});
Run Code Online (Sandbox Code Playgroud)
Ole*_*leg 12
我猜你在代码中犯了一些错误.您发布的代码似乎是正确的,但您不需要另外设置grouping:true和触发,reloadGrid因为groupingGroupBy您自动执行此操作.
该演示演示了动态设置或删除分组.

所以你可以使用
$("#dynamicGrouping").change(function () {
var groupingName = $(this).val();
if (groupingName) {
$('#grid').jqGrid('groupingGroupBy', groupingName);
} else {
$('#grid').jqGrid('groupingRemove');
}
});
Run Code Online (Sandbox Code Playgroud)
或者更高级的版本
$("#dynamicGrouping").change(function () {
var groupingName = $(this).val();
if (groupingName) {
$('#grid').jqGrid('groupingGroupBy', groupingName, {
groupOrder : ['desc'],
groupColumnShow: [false],
groupCollapse: true
});
} else {
$('#grid').jqGrid('groupingRemove');
}
});
Run Code Online (Sandbox Code Playgroud)
更新:一切都适用于JSON数据:请参阅演示.
更新2:我再次查看代码,我发现gridview将true 在网格初始化时设置:查看行.如果你没有 gridview: true并且最初使用grouping: false那么你将无法改变grouping: true.您还必须正确设置分组限制中的其他参数.
所以你必须自己遵守限制规则:
scroll: false,
rownumbers: false,
treeGrid: false,
gridview: true,
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我建议总是使用,gridview: true因为更好的性能.
| 归档时间: |
|
| 查看次数: |
9530 次 |
| 最近记录: |