JsGrid - 在刷新时保持排序顺序
JsGrid - Keep sorted order on refresh
我在 jsGrid 中有一个每 5 秒刷新一次的网格。虽然过滤很好并且保持刷新状态,但对 tables 进行排序却没有。一旦刷新命中 table 自动返回到其未排序的默认顺序。
有没有办法让 JsGrid 在刷新时保持排序?
这是我的代码:
$("#jsGrid").jsGrid({
height: "300px",
width: "100%",
filtering: true,
sorting: true,
paging: true,
autoload: true,
pageSize: 10,
controller: {
loadData: function(filter) {
var data = $.Deferred();
$.ajax({
type: "GET",
url: BASE_URL,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//SUCCESS MESSAGE
},
error: function(textStatus, errorThrown) {
//ERROR MESSAGE
}
}).then(function(result) {
result = $.grep(result,
function(item) {
return //FILTERED RESULTS;
});
data.resolve(result);
});
return data.promise();
}
},
//SAMPLE FIELDS
fields: [{
name: "Name",
type: "text",
width: 150
},
{
name: "Age",
type: "number",
width: 50
},
{
name: "Address",
type: "text",
width: 200
},
{
name: "Country",
type: "select",
}
]
});
setInterval(function() {
//Refreshes grid only after 5 seconds
$("#jsGrid").jsGrid("loadData");
}, 5000);
找到答案了!昨天有人在 GitHub 上发布了一个线程,寻找与我相同的东西:
答案在我的 setInterval
函数中调用 .done
函数并在其中调用 jsGrid 排序器。 :
setInterval(function() {
//Refreshes grid only after 5 seconds
$('#jsGrid').jsGrid("loadData").done(function () {
var sorting = $("#jsGrid").jsGrid("getSorting");
$("#jsGrid").jsGrid("sort", sorting);
}, 5000);
我在 jsGrid 中有一个每 5 秒刷新一次的网格。虽然过滤很好并且保持刷新状态,但对 tables 进行排序却没有。一旦刷新命中 table 自动返回到其未排序的默认顺序。
有没有办法让 JsGrid 在刷新时保持排序?
这是我的代码:
$("#jsGrid").jsGrid({
height: "300px",
width: "100%",
filtering: true,
sorting: true,
paging: true,
autoload: true,
pageSize: 10,
controller: {
loadData: function(filter) {
var data = $.Deferred();
$.ajax({
type: "GET",
url: BASE_URL,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//SUCCESS MESSAGE
},
error: function(textStatus, errorThrown) {
//ERROR MESSAGE
}
}).then(function(result) {
result = $.grep(result,
function(item) {
return //FILTERED RESULTS;
});
data.resolve(result);
});
return data.promise();
}
},
//SAMPLE FIELDS
fields: [{
name: "Name",
type: "text",
width: 150
},
{
name: "Age",
type: "number",
width: 50
},
{
name: "Address",
type: "text",
width: 200
},
{
name: "Country",
type: "select",
}
]
});
setInterval(function() {
//Refreshes grid only after 5 seconds
$("#jsGrid").jsGrid("loadData");
}, 5000);
找到答案了!昨天有人在 GitHub 上发布了一个线程,寻找与我相同的东西:
答案在我的 setInterval
函数中调用 .done
函数并在其中调用 jsGrid 排序器。 :
setInterval(function() {
//Refreshes grid only after 5 seconds
$('#jsGrid').jsGrid("loadData").done(function () {
var sorting = $("#jsGrid").jsGrid("getSorting");
$("#jsGrid").jsGrid("sort", sorting);
}, 5000);