如果我有列(名称,数量),我该如何最好地创建显示(“总计”,8877)的行/页脚?显然你可以通过向数据添加一行来完成,但是这会破坏排序功能。它看起来比较容易按名称分组,并显示每个名称的数量,但我还没有找到如何做更简单的情况(虽然我发现其他人问 - 例如https://github.com/angular-ui/ng-grid/issues/679)在ng-grid中做列总数的最佳方法是什么?
4
A
回答
0
很可能不是最好的解决方案,但我最终在页脚的顶部添加了总计行。 https://github.com/mchapman/forms-angular/commit/9f02ba1cdafe050f5cb5e7bb7d26325b08c85ad2
0
无需修改网格,您可以提供自己的页脚模板,以某种方式获取每列的总数。 在我的情况下,当我从服务器数据“建立”表格时,我也积累了总计散列值。
我的模板看起来是这样的:
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]
-1
取看一下“服务器端分页”示例,它正是你想要的!你可以根据你需要切片和切块。
http://angular-ui.github.io/ng-grid/
在网格选项把
enablePaging: true,
showFooter: true,
showFilter: true,
totalServerItems: 'totalServerItems',
pagingOptions: $scope.pagingOptions,
和向上顶
$scope.pagingOptions = {
pageSizes: [100, 500, 1000],
pageSize: 100,
totalServerItems: 0,
currentPage: 1
};
$scope.setPagingData = function (data, page, pageSize) {
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
$scope.myData = pagedData;
**$scope.pagingOptions.totalServerItems = data.length**;
if (!$scope.$$phase) {
$scope.$apply();
}
};
+0
它要求在页脚中总共有列,而不是总行大小 –
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来做你想做的任何事情。
相关问题
- 1. 最佳做法是什么?
- 2. 在SCSS中做精灵的最佳方法是什么?
- 3. 在MySql中汇总数据的最佳方式是什么?
- 4. log4cxx的最佳做法是什么?
- 5. 什么是ViewModel的最佳做法
- 6. 总结区间数据的最佳方法是什么?
- 7. 在.NET中加密数据的最佳做法是什么?
- 8. 在JSP中验证参数的最佳做法是什么?
- 9. 在java中每个键的计数最佳做法是什么
- 10. 在JavaScript中构造函数的最佳做法是什么?
- 11. 在JSP中呈现JSON数据的最佳做法是什么?
- 12. 在Swift中迭代AnyObject数组的最佳做法是什么?
- 13. HMAC解决方案中密钥的使用(最佳/最佳做法)是什么?
- 14. 什么应该是关键在散列表的最佳做法
- 15. Nginx和runit ....什么是最佳做法
- 16. WCF休息 - 最佳做法是什么?
- 17. ASP.NET缓存,什么是最佳做法
- 18. 处理重复方法调用的最佳做法是什么?
- 19. 推断方法的最佳做法是什么?
- 20. 有关const实例方法的最佳做法是什么?
- 21. 在Java中确定文件的总字数的最佳方法是什么?
- 22. 在Java中使用序列化的最佳方法是什么?
- 23. 在Python中移动列表的最佳方法是什么?
- 24. 在SQLite中做数据透视表的最佳方法是什么?
- 25. 什么是使用codeigniter的SUM列值的最佳做法
- 26. 在C#中做事情的最佳方式是什么?
- 27. 什么是在oracle中做条件选择的最佳方式
- 28. 什么是在JavaScript中做到这一点的最佳方式?
- 29. 什么是在C#中的文件处理的最佳做法?
- 30. 缓存第三方API调用的最佳做法是什么?
你为什么不接受解决方案? – Sampath