Bạn không phải là người duy nhất gặp sự cố. Tôi trả lời trước số the same question. Để tải lại nội dung lưới từ máy chủ, bạn nên đặt lại thông số datatype
thành giá trị ban đầu "json" hoặc "xml" và sau đó làm mới lưới. Ví dụ
jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
CẬP NHẬT: Để gọi dòng bên trong beforeRefresh xử lý sự kiện bạn có thể làm sau
jQuery("#list").jqGrid('navGrid','#pager',
{ edit:false,view:false,add:false,del:false,search:false,
beforeRefresh: function(){
alert('In beforeRefresh');
grid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
}
});
tôi sửa đổi một ví dụ từ am câu hỏi cũ. Here nếu bạn nhấp vào nút làm mới, bạn có thể xem trực tiếp cách mã hoạt động.
CẬP NHẬT 2: Free jqGrid hỗ trợ một số tùy chọn mới. reloadGrid
sự kiện hỗ trợ tham số fromServer: true
có thể được sử dụng để buộc tải lại dữ liệu từ máy chủ và navGrid
hỗ trợ tùy chọn reloadGridOptions
có thể được sử dụng để chỉ định tùy chọn reloadGrid
được sử dụng khi nhấp vào nút Làm mới. Vì vậy, các mã trên có thể là
$("#list").jqGrid("navGrid", {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
});
Bằng cách người ta có thể sử dụng tùy chọn navOptions
jqGrid để xác định tùy chọn mặc định của navGrid
(xem bài viết wiki). Nó cho phép viết mã giống như
$("#link").jqGrid({
// all typical jqGrid parameters
datatype: "json", // or "xml"
loadonce: true,
pager: true, // no empty div for page is required
navOptions: {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
}
}).jqGrid("navGrid");
Cảm ơn - Bạn có thể chạy mã này khi nhấn nút tải lại như thế nào? Tôi không rõ làm thế nào để cấu hình thanh nav để thực hiện phương thức 'beforeRefresh' nếu đây là những gì bạn đang ám chỉ. –
@Marcus: Nếu rất dễ. Tôi bao gồm mã tương ứng trong câu trả lời của tôi. – Oleg
@Oleg, tôi đã thử làm điều này, nhưng một khi tôi nhấp vào nút làm mới, phân trang không hoạt động. –