1

Slick.Grid にすべてのデータを配列にレンダリングしてエクスポートできるようにする方法はありますか?

Slick.Grid インスタンス「mygrid.getData().getItems()」からデータを取得できますが、それは書式設定されたデータではなく生データです。

コレクションを反復処理してフォーマットされたデータを返すために使用できる関数はありますか?

今のところ、フォーマッターを 2 回実装する必要があります。

例:

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 形式でエクスポートできるようにしたいと考えています。書式設定部分を除いて、これらすべてが機能しています。

4

2 に答える 2

2

OK、エクスポートを行うメソッドを書きました(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

// パブリック API セクションの slick.grid.js に行を追加します

"getFormatter": getFormatter,
于 2012-06-19T00:50:26.713 に答える
0

設定autoHeight: trueすると、グリッド全体がレンダリングされ、HTMLをエクスポートできます。

http://mleibman.github.com/SlickGrid/examples/example11-autoheight.html

更新された質問への回答:

フォーマッターは、行がレンダリング/表示されたときにのみ呼び出されるため、フォーマットされたデータを含む配列は存在しません。ソースで:https ://github.com/mleibman/SlickGrid/blob/master/slick.grid.js#L1291

于 2012-06-17T14:21:09.897 に答える