我創建了一些代碼來保存和恢復列順序,如果能夠保存正確的數據,它也可以調整大小。看起來,當「columnReorder」事件觸發時,新的列順序還沒有實際保存 - 所以儘管列保存和恢復功能確實起作用,但它還是落後了一步。有沒有人知道如何獲得「新」欄信息,或在之後捕獲事件重新排序?這是一條什麼神奇的部分...Kendo Grid:在columnReorder事件中保存狀態
var colCook = getCookieColumns();
//setup user columns or cookie columns as appropriate
$("#disputesGrid").kendoGrid({
dataSource: myDataSource,
columns: (colCook != null) ? JSON.parse(colCook) : {default column values},
pageable: {
refresh: true,
pageSizes: [10, 25, 50, 100],
buttonCount: 10,
input: true
},
reorderable: true,
columnReorder: function (e) { saveColumnsCookie(); },
sortable: true,
resizable: true,
selectable: "multiple row"
});
}
function getCookieColumns() {
var cookiesArray = document.cookie.split(';');
for (var i = 0; i < cookiesArray.length; i++) {
var c = cookiesArray[i].trim();
if (c.indexOf("DisputeGridViewColumns=") == 0) return c.substring(23, c.length);
}
return null;
}
function saveColumnsCookie() {
//saves the current column information into a cookie
try {
var d = new Date();
d.setTime(d.getTime() + (365 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = "DisputeGridViewColumns=" + kendo.stringify($("#disputesGrid").data("kendoGrid").columns) + "; " + expires;
} catch (x) {
//it fails when the grid isn't initialized - we can just ignore that
}
}
注意:新列的順序似乎並沒有在活動結束的「E」,但是這是合理的地方,對不對?
我有同樣的問題。他們需要添加一個在訂單更改後觸發的columnReordered事件。但接受的答案很好。 –