Slickgrid示例-6(远程数据)和示例-9(重新排序)

时间:2013-11-17 12:51:45

标签: jquery asp-classic slickgrid

我正在尝试将示例-6(远程数据)和示例9(重新排序)组合在一起。 我写了下面的代码,但我得到了#34; TypeError:data.slice不是一个函数"。能帮我解决这个问题吗?我的代码如下。

example6-ajax-loading html example9-row-reordering html

var loader = new Slick.Data.RemoteModel(); /* REMOTE DATA USE */
data=data.loader; /* DRAG & DROP USE */

完整的代码。的jsfiddle

JsFiddle Link

谢谢

1 个答案:

答案 0 :(得分:0)

Slick.Data.RemoteModeldata公开为具有length属性和行索引作为键的对象,它类似于数组,但没有来自Array.prototype的方法,如{ {1}}。

请参阅:https://github.com/mleibman/SlickGrid/blob/master/slick.remotemodel.js#L10

  • 一种选择是在使用slice等方法之前将loader.data复制为数组。因为它具有长度属性和键作为数字,所以slice

    可以实现
    Array.prototype.slice.call()
  • 另一个选择是扩展moveRowsPlugin.onMoveRows.subscribe(function (e, args) { var extractedRows = [], left, right; var rows = args.rows; var insertBefore = args.insertBefore; var dataAsArray = Array.prototype.slice.call(loader.data); left = dataAsArray.slice(0, insertBefore); right = dataAsArray.slice(insertBefore, dataAsArray.length); // ... }); 以提供将行移动到索引的实用程序方法。