Javascript 在Slick.Grid中是否有方法将所有数据呈现到一个数组中以便导出?
在Slick.Grid中是否有方法将所有数据呈现到一个数组中以便导出 我能够从Slick.Grid实例“mygrid.getData().getItems()”中获取数据,但它只是原始数据,而不是格式化数据 是否有一个函数可以用来迭代集合并返回格式化的数据 到目前为止,我必须实现我的格式化程序两次 例如:Javascript 在Slick.Grid中是否有方法将所有数据呈现到一个数组中以便导出?,javascript,jquery,slickgrid,Javascript,Jquery,Slickgrid,在Slick.Grid中是否有方法将所有数据呈现到一个数组中以便导出 我能够从Slick.Grid实例“mygrid.getData().getItems()”中获取数据,但它只是原始数据,而不是格式化数据 是否有一个函数可以用来迭代集合并返回格式化的数据 到目前为止,我必须实现我的格式化程序两次 例如: UnixToDate: (row, cell, value, columnDef, dataContext) -> moment.unix(value).format("MMM Do
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格式导出结果,除了格式化部分之外,我已经完成了所有这些工作。当您设置
autoHeight:true
时,将呈现完整的网格,并且可以导出html
对最新问题的答复:
仅当行呈现/可见时才调用格式化程序,所以包含格式化数据的数组永远不存在。在源代码处:好的,我编写了一个方法来进行导出(用coffeescript编写并使用下划线.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,
呈现所有数据,然后解析html可能会起作用,但根本没有效率。我正在浏览slick.grid.js文件,其中必须有一种方法来调用数据数组上的format函数。我不明白,你写的是你想要格式化的数据,如果不是html,那么这意味着什么?我说的是用于填充网格的javascript数组。我在我的问题上加了一个例子。。