gpt4 book ai didi

jquery - 记住(持久化)jqGrid的过滤器、排序顺序和当前页面

转载 作者:行者123 更新时间:2023-12-03 21:33:39 24 4
gpt4 key购买 nike

我的应用程序用户询问包含 jqGrid 的页面是否可以记住网格的过滤器、排序顺序和当前页面(因为当他们单击网格项来执行任务然后返回到该任务时,他们会希望它是“他们离开时的样子”)

Cookie 似乎是前进的方向,但如何让页面加载这些并在网格中设置它们在它发出第一个数据请求之前,现阶段我有点难以理解。

有人对 jqGrid 的这种事情有任何经验吗?谢谢!

最佳答案

问题已解决

我最终在 javascript 中使用 cookies 来存储排序列、排序顺序、页码、网格行和网格的过滤器详细信息(使用 JSON/Javascript cookies - prefs 对象)

保存偏好设置 - 从 $(window).unload(function(){ ... });

调用
var filters = {
fromDate: $('#fromDateFilter').val(),
toDate: $('#toDateFilter').val(),
customer: $('#customerFilter').val()
};

prefs.data = {
filter: filters,
scol: $('#list').jqGrid('getGridParam', 'sortname'),
sord: $('#list').jqGrid('getGridParam', 'sortorder'),
page: $('#list').jqGrid('getGridParam', 'page'),
rows: $('#list').jqGrid('getGridParam', 'rowNum')
};

prefs.save();

加载首选项 - 从 $(document).ready(function(){ ... });

调用
var gridprefs = prefs.load();

$('#fromDateFilter').val(gridprefs.filter.fromDate);
$('#toDateFilter').val(gridprefs.filter.toDate);
$('#customerFilter').val(gridprefs.filter.customer);

$('#list').jqGrid('setGridParam', {
sortname: gridprefs.scol,
sortorder: gridprefs.sord,
page: gridprefs.page,
rowNum: gridprefs.rows
});

// filterGrid method loads the jqGrid postdata with search criteria and re-requests its data
filterGrid();

jqGrid引用:http://www.secondpersonplural.ca/jqgriddocs/_2eb0fi5wo.htm

根据大众需求 - FILTERGRID 代码

    function filterGrid() {
var fields = "";
var dateFrom = $('#dateFrom').val();
var dateTo = $('#dateTo').val();

if (dateFrom != "") fields += (fields.length == 0 ? "" : ",") + createField("shipmentDate", "ge", dateFrom);
if (dateTo != "") fields += (fields.length == 0 ? "" : ",") + createField("shipmentDate", "le", dateTo);

var filters = '"{\"groupOp\":\"AND\",\"rules\":[' + fields + ']}"';

if (fields.length == 0) {
$("#list").jqGrid('setGridParam', { search: false, postData: { "filters": ""} }).trigger("reloadGrid");
} else {
$("#list").jqGrid('setGridParam', { search: true, postData: { "filters": filters} }).trigger("reloadGrid");
}

}

function createField(name, op, data) {
var field = '{\"field\":\"' + name + '\",\"op\":\"' + op + '\",\"data\":\"' + data + '\"}';
return field;
}

关于jquery - 记住(持久化)jqGrid的过滤器、排序顺序和当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015203/

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