javascript - Slick.Grid 中有没有一种方法可以将所有数据呈现到数组中以便导出?

标签 javascript jquery slickgrid

Slick.Grid 中有没有一种方法可以将所有数据呈现到一个数组中以便导出?

我能够从我的 Slick.Grid 实例“mygrid.getData().getItems()”中获取数据,但它只是原始数据而不是格式化数据。

是否有一个函数可以用来遍历集合并返回格式化数据?

截至目前,我不得不两次实现我的格式化程序。

例子:

UnixToDate: (row, cell, value, columnDef, dataContext) ->
  moment.unix(value).format("MMM Do YY")


items: [
   {id: 1, activity_at: 915148798 },
   {id: 2, activity_at: 999148800 }
]

columns: [
    {field: 'id', id: 'id', name: 'Id'},
    {field: 'activity_at', id: 'activity_at', name: 'Activity', formatter: UnixToDate}
]

@data = new Slick.Data.DataView()
@grid = new Slick.Grid( $('#table'), @data, columns )
@data.setItems(items)

我想知道是否有一种方法可以返回具有格式化值的数据。 我认为 @grid.getData().getItems() 会这样做,但它返回原始数据数组。

返回的数据应该是这样的:

data: [
   {id: 1, activity_at: "Dec 31st 98" },
   {id: 2, activity_at: "Aug 29th 01" }
]

我希望最终用户能够过滤和排列网格,然后以 csv 格式导出结果,除了格式化部分之外,我已经完成了所有这些工作。

最佳答案

好的,我写了一个方法来进行导出(用 coffeescript 编写并使用 underscore.js)。我还必须在 slick.grid.js 中公开 getFormatter 方法

getFormattedData: (grid) ->
  columns = grid.getColumns()
  rows = grid.getData().getItems()
  _(rows).map (row) ->
    h = {}
    i = 0
    _(columns).each (column) ->
      f = grid.getFormatter(row, column)
      h[column.id] = f(row, i, row[column.id], column, row)
      i += 1
    h

在//公共(public) API 部分向 slick.grid.js 添加行

"getFormatter": getFormatter,

关于javascript - Slick.Grid 中有没有一种方法可以将所有数据呈现到数组中以便导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066362/

相关文章:

javascript - Slickgrid 滚动直到最后一行位于数据 View 的上部

javascript - getRelevantGoogleReviews 不是 WordPress 中的函数错误,但可以在 Localhost 中使用

javascript - Node.js 主机名/IP 与证书的别名不匹配

javascript - 延迟表单提交(AngularJS)

jquery - HTML5 textarea 占位符未出现

javascript - $ 在 JQuery 中意味着什么

slickgrid - 使用 DataView 更新 slickgrid 中的单个单元格(不是整行)

javascript - 从 AJAX/PHP 获取多个实时值到 JavaScript

javascript - 根据其他属性和链接值查找链接属性

html - 如何删除 SlickGrid 中的标题?