列 (名前、金額) がある場合、("Total",8877) を表示する行/フッターを作成するにはどうすればよいですか? 明らかに、データに行を追加することでそれを行うことができますが、これによりソート機能が台無しになります。名前でグループ化して名前ごとに金額を表示するのは比較的簡単に見えますが、より単純なケースを行う方法が見つかりませんでした (ただし、他の人が質問しているのを見つけました - https://github.com/angular-ui/ng-grid /issues/679など)
3765 次
4 に答える
3
gridOptions にカスタム フッター テンプレートを含めることができます。ソースコードでフッターのデフォルトのフォーマットを探してコピーしましたが、合計を計算する関数を追加しました。このようなもの:
$scope.gridOptions = {
data: 'hereGoesTheData',
columnDefs : [list of your column names],
showFooter: true,
footerTemplate:
'<div ng-show="showFooter" class="ngFooterPanel" ng-class="{\'ui-widget-content\': jqueryUITheme, \'ui-corner-bottom\': jqueryUITheme}" ' +
'ng-style="footerStyle()"><div ng-style="{ \'cursor\': row.cursor }" ng-repeat="col in renderedColumns" ng-class="col.colIndex()" class="ngCell {{col.cellClass}} " ng-cell style="text-align:right;">' +
'{{getTotal(col.field)}}</div></div>'
};
そして、 $scope.getTotal を定義して、やりたいことを何でもします。
于 2015-04-09T22:43:44.137 に答える
0
ng グリッドを変更せずに、独自のフッター テンプレートを提供するだけで、各列の合計を取得できます。私の場合、サーバー データからテーブルを「構築」すると、合計ハッシュも蓄積されます。
私のテンプレートは次のようになります。
total_cell_footer = """
<div ng-show="showFooter" class="ngFooterPanel" ng-class="{'ui-widget-content': jqueryUITheme, 'ui-corner-bottom': jqueryUITheme}" ng-style="footerStyle()">
<div class="ngTotalSelectContainer" >
<div ng-style="{ 'cursor': row.cursor }" ng-repeat="col in renderedColumns" ng-class="col.colIndex()" class="ngCell {{col.cellClass}}">
<span class="ngCellText">{{ get_total(col) | currency:"$"}} </span>
<div class="ngVerticalBar" ng-style="{height: rowHeight}" ng-class="{ ngVerticalBarVisible: !$last }"> </div>
</div>
</div>
</div>
"""
get_total 関数は、次のように私のスコープ (ngGrid スコープの親であるため、継承されます) で定義されています。
$scope.get_total= (col) ->
# used by the footer template to access column totals.
$scope.totals[col.field]
于 2013-11-22T00:08:35.083 に答える
0
おそらく最善の解決策ではありませんが、フッターの上部に合計行を追加することになりました。 https://github.com/mchapman/forms-angular/commit/9f02ba1cdafe050f5cb5e7bb7d26325b08c85ad2
于 2013-10-03T09:16:42.350 に答える