|
多谢,下个版本会增加几个示例,演示如果制作合计行。
-增加合计行示例grid/grid_summary.aspx(◇辉◆:)。
-增加服务器端合计行示例grid/grid_summary_serverside.aspx(◆◇提拉米苏℡)。
需要写部分JS和CSS代码:- <script>
- var gridClientID = '<%= Grid1.ClientID %>';
- function calcGridSummary(grid) {
- var donateTotal = 0, store = grid.getStore(), view = grid.getView(), storeCount = store.getCount();
- // 防止重复添加了合计行
- if (Ext.get(view.getRow(storeCount - 1)).hasClass('mygrid-row-summary')) {
- return;
- }
- // 遍历每一行数据,计算汇总数据
- store.each(function (record) {
- // 注:donate是列的ColumnID属性
- donateTotal += parseInt(record.data["donate"]);
- });
- var donateAvg = donateTotal / storeCount;
- store.add(new Ext.data.Record({
- 'major': '合计:',
- 'donate': donateTotal
- }));
- store.add(new Ext.data.Record({
- 'major': '平均:',
- 'donate': donateAvg
- }));
- // 为合计行添加自定义样式(隐藏序号列、复选框列,取消 hover 和 selected 效果)
- Ext.get(view.getRow(storeCount)).addClass('mygrid-row-summary');
- Ext.get(view.getRow(storeCount + 1)).addClass('mygrid-row-summary');
- }
- // 页面第一个加载完毕后执行的函数
- function onReady() {
- var grid = X(gridClientID);
- grid.addListener('viewready', function () {
- calcGridSummary(grid);
- });
- // 防止选中合计行
- grid.getSelectionModel().addListener('beforerowselect', function (sm, rowIndex, keepExisting, record) {
- if (Ext.get(grid.getView().getRow(rowIndex)).hasClass('mygrid-row-summary')) {
- return false;
- }
- return true;
- });
- }
- // 页面AJAX回发后执行的函数
- function onAjaxReady() {
- var grid = X(gridClientID);
- calcGridSummary(grid);
- }
- </script>
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|