SlickGrid:如何阻止某些列被重新排序?
SlickGrid : How to stop certain columns from being reordered?
我需要停止对 SlickGrid 中的某些列进行重新排序。我只是找不到办法。在 'resizable' 或类似的情况下,每一列都没有允许重新排序的选项。下面的标志使所有列 'reorder-able' :
var options = {
enableColumnReorder: true
};
如果有任何解决方法,请告诉我。 TIA
您实际上可以明确禁用列重新排序并设置您需要的每个列sortable
。
例如:
var columns = [
{ id: "title", name: "Title", field: "title", sortable: false },
{ id: "duration", name: "Duration", field: "duration", sortable: true, formatter: dayFormatter },
{ id: "%", name: "% Complete", field: "percentComplete", sortable: true },
{ id: "start", name: "Start", field: "start", formatter: dateFormatter, sortable: true },
{ id: "finish", name: "Finish", field: "finish", formatter: dateFormatter, sortable: true },
{ id: "effort-driven", name: "Effort Driven", field: "effortDriven", sortable: true }
];
取自他们的例子here
添加:列选项的文档 - https://github.com/mleibman/SlickGrid/wiki/Column-Options
不幸的是,没有直接的选项来实现这一点,但如果我们探索源代码,我们会发现它们使用 jquery 可排序插件。所以我们可以 "inject" 进入 sortable 调用,为 `sortable 插件添加选项 cancel
或 items
。
在列选项中:
headerCssClass: "disable-reorder"
初始化中:
var origSortable = $.fn.sortable;
$.fn.sortable = function (options) {
if (options !== null && typeof options === 'object'){
options.cancel = '.disable-reorder';
}
return origSortable.apply(this, arguments);
};
data = [
//some data
];
grid = new Slick.Grid("#myGrid", data, columns, options);
这将防止 headers 和 class .disable-reorder
无法重新订购。
这是一种丑陋而笨拙的方式,但我找不到任何其他选择。
我需要停止对 SlickGrid 中的某些列进行重新排序。我只是找不到办法。在 'resizable' 或类似的情况下,每一列都没有允许重新排序的选项。下面的标志使所有列 'reorder-able' :
var options = {
enableColumnReorder: true
};
如果有任何解决方法,请告诉我。 TIA
您实际上可以明确禁用列重新排序并设置您需要的每个列sortable
。
例如:
var columns = [
{ id: "title", name: "Title", field: "title", sortable: false },
{ id: "duration", name: "Duration", field: "duration", sortable: true, formatter: dayFormatter },
{ id: "%", name: "% Complete", field: "percentComplete", sortable: true },
{ id: "start", name: "Start", field: "start", formatter: dateFormatter, sortable: true },
{ id: "finish", name: "Finish", field: "finish", formatter: dateFormatter, sortable: true },
{ id: "effort-driven", name: "Effort Driven", field: "effortDriven", sortable: true }
];
取自他们的例子here
添加:列选项的文档 - https://github.com/mleibman/SlickGrid/wiki/Column-Options
不幸的是,没有直接的选项来实现这一点,但如果我们探索源代码,我们会发现它们使用 jquery 可排序插件。所以我们可以 "inject" 进入 sortable 调用,为 `sortable 插件添加选项 cancel
或 items
。
在列选项中:
headerCssClass: "disable-reorder"
初始化中:
var origSortable = $.fn.sortable;
$.fn.sortable = function (options) {
if (options !== null && typeof options === 'object'){
options.cancel = '.disable-reorder';
}
return origSortable.apply(this, arguments);
};
data = [
//some data
];
grid = new Slick.Grid("#myGrid", data, columns, options);
这将防止 headers 和 class .disable-reorder
无法重新订购。
这是一种丑陋而笨拙的方式,但我找不到任何其他选择。