编程语言
首页 > 编程语言> > javascript-Slickgrid列重新排序无法正常工作

javascript-Slickgrid列重新排序无法正常工作

作者:互联网

我正在使用Slickgrid javasript库,并且已经使用以下选项初始化了网格:

var options = 
{
  enableCellNavigation: true,
  enableColumnReorder: true,
  syncColumnCellResize: false,
  asyncEditorLoading: true
};

我已经实现了其余的slickgrid,并且运行良好.我遇到的唯一问题是列重新排序无法正常工作.

我能够将列标题拖动到另一个位置,但是当它悬停在我想将其拖放到的位置时,其他列标题并没有按照我之前看到的示例那样移动.我通常需要弄乱列标题,直到打开一个空格.

我还没有看到关于列标题的任何文档无法重新排序,所以我什至不知道这些问题的发生原因或原因.

是否有人有类似的问题,例如Slickgrid的问题或任何建议?

解决方法:

我最近才刚开始使用SlickGrid,遇到了类似的问题.

我是这样做的:

var options = { ... };
var dataView = ...;

// initialize columns with empty array
var columns = [];

// intialize myGrid with the empty columns
var myGrid = new Slick.Grid(
                  "#myGrid", dataView,
                  columns, options);

// initialize columns here (e.g. after loading dynamic column header data)
columns.push(
  {id:"sel", name:"#", field:"num", sortable: true},
  {id:"title", name:"Title", field:"title", sortable: true},
  {id:"duration", name:"Duration", field:"duration", sortable: true});

// update the columns
myGrid.setColumns(columns);

您可能会问为什么我要那样做.好吧,我有一些来自动态内容的列标题,并试图将内容加载的方式与行数据加载的方式相同.无论如何,当我以上述方式进行操作时,其他所有事情(例如事件处理程序,行的更新等)似乎都可以正常工作,除了您描述的奇怪的列重新排序行为.

经过大量的试验和错误并将我的代码与提供的示例进行比较,结果发现我的错误是初始化期间未正确设置列.显然,当您使用空的列数组调用新的Slick.Grid时,会发生奇怪的行为.

我要解决的问题是简单地使用虚拟非空列数组初始化网格,然后稍后再调用setColumns设置实际列.例如

// intialize myGrid with dummy column array
var myGrid = new Slick.Grid(
                  "#myGrid", dataView,
                  [{id: "dummy"}], options);

进行此更改后,其他所有操作均按预期进行.

这花了我一段时间,但我希望它能对您或其他可能遇到类似问题的人有所帮助.

标签:slickgrid,javascript
来源: https://codeday.me/bug/20191208/2089146.html