繁体   English   中英

SlickGrid:如何阻止某些列重新排序?

[英]SlickGrid : How to stop certain columns from being reordered?

我需要停止对SlickGrid中的某些列进行重新排序。 我只是找不到办法。 在“调整大小”之类的情况下,每一列都没有允许重新排序的选项。 下面的标志使所有列“可重新排序”:

var options = {
  enableColumnReorder: true
};

让我知道是否有任何解决方法。 TIA

不幸的是,没有实现此目的的直接选择,但是如果我们研究源代码,我们会发现它们使用jquery可排序插件。 因此,我们可以“注入”到排序呼叫添加选项cancelitems进行排序`插件。

在列选项中:

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);

这样可以防止类.disable-reorder标头.disable-reorder

这是丑陋的,但是我找不到其他选择。

小提琴

实际上,您可以显式禁用列重新排序,并设置需要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 }
  ];

从他们的榜样采取这里

另外:列选项的文档-https: //github.com/mleibman/SlickGrid/wiki/Column-Options

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM