我有一個網格,我正在檢索整個數據集,然後希望用戶有能力對結果數據進行排序。我使用以下屬性,但網格不排序。在用戶點擊一個按鈕之後,我也會提出一個AJAX調用,然後我需要從源代碼刷新,但是由於我每次都將所有數據提交給客戶端,所以我不需要去回到服務器只是爲了排序。jqGrid遠程數據,本地排序
loadonce: true, // to enable sorting on client side
sortable: true //to enable sorting
任何建議,非常感謝!
我有一個網格,我正在檢索整個數據集,然後希望用戶有能力對結果數據進行排序。我使用以下屬性,但網格不排序。在用戶點擊一個按鈕之後,我也會提出一個AJAX調用,然後我需要從源代碼刷新,但是由於我每次都將所有數據提交給客戶端,所以我不需要去回到服務器只是爲了排序。jqGrid遠程數據,本地排序
loadonce: true, // to enable sorting on client side
sortable: true //to enable sorting
任何建議,非常感謝!
我不確定,但在我看來,你想在本地實現排序,而遠程搜索。我有同樣的要求,我這樣做:Make 'Search' remote and everything else (sorting, pagination, etc) local in jqGrid
它不太清楚你可能會看到什麼問題,但是當使用本地排序和過濾遠程數據源時,有幾件事情你需要注意:
加載網格後,您無法更改loadonce
值,但可以更改datatype
值並強制從服務器重新加載。該網格將仍然有你的網格設置自己的初始url
因此,所有你需要運行是:
$(this).jqGrid('setGridParam', {datatype:'json'}).trigger('reloadGrid');
你可以找到確切詳細信息如何做到這一切的位置:http://articles.firstclown.us/post/jqgrid-configuration-for-remote-data-loading-with-local-sorting-and-filtering
我只是發現了一些。 定義網格時可以使用loadComplete參數。
loadComplete: function() {
// add a function here that waits for a short amount of time, like 100msecs
jQuery("#list1").jqGrid('setGridParam', {
datatype:'local',
sortname:'name',
sortorder:'asc',
page:1
}).trigger("reloadGrid");
}
注意,我在本地使用我的數據,當我需要刷新把數據類型回XML。
重要提示:這本身不起作用:在觸發reloadGrid(執行該行)之前,您需要等待少量時間。 否則你不會在輸出中看到不同。
我的需求是刷新/加載遠程數據,而所有其他操作都是在本地完成。那麼這就是我如何實現我的需求。
準備的jqGrid與數據類型當地
$("#jqGridView").jqGrid({
//url: originalUrl,// Original line
//datatype: "json",// Original line
datatype: "local", // For local sorting
sortable: true, // I want local sorting for all columns
colNames: [...],
colModel: [...],
//...
});
然後調用在(再)負載/搜索這個功能:
function reloadJqGrid() {
var urlForSearch = "xxx"; // modify your search URL (if required)
$.get(urlForSearch, function (data) {
$("#jqGridView").jqGrid('setGridParam',
{
datatype: 'local',
data: data.Payload //My URL response json is in JSend format, thus storing the array in "data.Payload". You may simply use "data"
})
.trigger("reloadGrid");
});
}
希望這有助於!