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/