vấn đề giải quyết
tôi cuối cùng đã kết thúc sử dụng cookie trong javascript để lưu trữ các cột sắp xếp, sắp xếp theo thứ tự, số trang, hàng lưới và các chi tiết bộ lọc của lưới điện (sử dụng JSON/Javascript cookies - đối tượng prefs
)
Save Preferences - Được gọi là từ $(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();
tải Preferences - Được gọi là từ $(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 tham khảo: http://www.secondpersonplural.ca/jqgriddocs/_2eb0fi5wo.htm
Thể theo yêu cầu - THE FILTERGRID MÃ
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;
}
Tôi khuyên bạn nên suy nghĩ về việc cập nhật dữ liệu khác nhau ở phía máy chủ. Liệu bộ lọc có hoạt động không? Bạn có thể xóa các bộ lọc đã lưu sau khi cập nhật trên máy chủ không? Ví dụ easieast là số trang. Làm thế nào sẽ giống như jqGrid ở phía khách hàng nếu tại thời điểm tiếp theo số lượng tối đa của các trang sẽ ít hơn sau đó các trang hiện tại được lưu trong cookie? Tuy nhiên tôi thấy việc triển khai của bạn tốt và bạn đi theo hướng chính xác. – Oleg
Xin chào, Jimbo. Tôi sẽ có bộ lọc đóGrid từ bạn nếu bạn đã có nó. +1 về câu hỏi và câu trả lời - chính xác những gì tôi đang tìm kiếm. –
@David - Cập nhật câu trả lời của tôi ở trên để bao gồm các bộ lọcGrid code - tất cả các tốt nhất :) – Jimbo