Làm thế nào để tắt tự động tải trong jqGrid và tải dữ liệu theo cách thủ công khi tôi cần?Làm thế nào để tắt tự động tải trong jqGrid?
Cảm ơn.
Làm thế nào để tắt tự động tải trong jqGrid và tải dữ liệu theo cách thủ công khi tôi cần?Làm thế nào để tắt tự động tải trong jqGrid?
Cảm ơn.
Nếu bạn đặt datatype
thành 'local'
, dữ liệu từ máy chủ sẽ không được tải. Để buộc tải dữ liệu, bạn có thể thay đổi datatype
thành 'json'
hoặc 'xml'
theo phương pháp setGridParam
(xem http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options và http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods#grid_related_methods) và sau đó gọi phương thức trigger("reloadGrid")
.
Xem jqGrid is not loading data cũng có thông tin bạn đã hỏi.
Chỉ cần không đặt URL mặc định trong bảng. Và cài đặt nó chỉ khi bạn cần tải dữ liệu (ví dụ bằng cách nhấn một nút) và sau đó .trigger("reloadGrid")
.
Ví dụ cho bạn:
jQuery("#grid").jqGrid(
{
//Simply comment out the URL
//url :"salepointsprovider.php",
datatype:"json",
colModel :[
{name:'SalePointId', index:'SalePointId'},
{name:'Name', index:'Name'}
]
}
$('#ShowRecordsButton').click(function() {
jQuery("#grid").jqGrid('setGridParam',
{url:"salepointprovider.php?SalePointId=" + argSalePointId, page:1});
jQuery("#grid").trigger('reloadGrid');
}
lưới của tôi mà không url gửi yêu cầu đến máy chủ:
.../_ tìm kiếm = false & nd = 1370817124473 & rows = 20 & page = 1 & sidx = & sord = asc
Đặt kiểu dữ liệu: "cục bộ" giải quyết sự cố. Nạp lưới bởi
`function reloadGrid(gridId, gridData){ $(gridId).jqGrid('clearGridData'); // need for nonempty grig (see http://www.trirand.com/blog/?page_id=393/help/triggerreloadgrid-not-work/) $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid'); } `
Không cần phải thay đổi kiểu dữ liệu (ít nhất là đối với trường hợp json của tôi nó được công nhận)
Trong TreeGrid bạn không thể sử dụng datatype = 'địa phương'. Vì vậy, thay vì 'cục bộ', tôi đặt datatype = 'jsonstring', xác định dữ liệu giả rỗng và jsonReader. jsonReader nên được định nghĩa đúng theo dữ liệu đã truy xuất của bạn. Cảm ơn Oleg's answer. Và, khi tôi cần tải dữ liệu, tôi chỉ cần thay đổi kiểu dữ liệu thành 'json'.
var fakeData ={
rows: []
};
...
datatype: 'jsonstring',
datastr: fakeData,
...
jsonReader: {
repeatitems: false,
root: function (obj) { return obj.rows; },
page: function (obj) { return 1; },
total: function (obj) { return 1; },
records: function (obj) { return obj.length; }
}
Đây không phải là câu trả lời cho câu hỏi. –
+1 lật kiểu dữ liệu hoạt động hoàn hảo. cảm ơn! – ongle