gpt4 book ai didi

jqgrid - 如何在jqGrid上客户端排序后突出显示最后选定的行?

转载 作者:行者123 更新时间:2023-12-04 14:05:11 26 4
gpt4 key购买 nike

我有一个基于 jqGrid 的应用程序,我使用 loadonce: true在网格选项和 sortable: true, sorttype: 'textcolModel允许在数据网格上进行客户端排序。但是,我发现,一旦数据网格重新排序,最后选择的行将不再突出显示。我的问题是,如何在数据重新排序中突出显示所选行?

最佳答案

我为你准备了the small demo保留行选择。在demo中我重写了selectionPreserver的代码用于具有附加参数的 reloadGrid 用法:$("#list").trigger("reloadGrid", [{current:true}]); .见 the answer详情。

该演示将当前选择保存在 onSortCol 中事件处理程序并在 loadComplete 中恢复它:

onSortCol: function () {
saveSelection.call(this);
},
loadComplete: function () {
restoreSelection.call(this);
}

您如何看待用法非常简单,您可以将其集成到您的代码中。 saveSelection的执行和 restoreSelection如下:
var lastSelArrRow = [],
lastScrollLeft = 0,
lastSelRow = null,
saveSelection = function () {
var $grid = $(this);
lastSelRow = $grid.jqGrid('getGridParam', 'selrow');
lastSelArrRow = $grid.jqGrid('getGridParam', 'selrow');
lastSelArrRow = lastSelArrRow ? $.makeArray(lastSelArrRow) : null;
lastScrollLeft = this.grid.bDiv.scrollLeft;
},
restoreSelection = function () {
var p = this.p,
$grid = $(this);

p.selrow = null;
p.selarrrow = [];
if (p.multiselect && lastSelArrRow && lastSelArrRow.length > 0) {
for (i = 0; i < lastSelArrRow.length; i++) {
if (lastSelArrRow[i] !== lastSelRow) {
$grid.jqGrid("setSelection", lastSelArrRow[i], false);
}
}
lastSelArrRow = [];
}
if (lastSelRow) {
$grid.jqGrid("setSelection", lastSelRow, false);
lastSelRow = null;
}
this.grid.bDiv.scrollLeft = lastScrollLeft;
};

关于jqgrid - 如何在jqGrid上客户端排序后突出显示最后选定的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6881717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com