|
又增加了一个示例:-增加合计行绝对定位到分页条上方的示例grid/grid_summary_absolute.aspx。
这个效果可能是很多网友想要的,即使出现滚动条也能一眼看到合计行,不过实现需要一定的技巧。
- <script>
- var gridClientID = '<%= Grid1.ClientID %>';
- var gridSummaryID = '<%= hfGrid1Summary.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;
- }
- // 从隐藏字段获取全部数据的汇总
- var summaryJSON = JSON.parse(Ext.getCmp(gridSummaryID).getValue());
- store.add(new Ext.data.Record({
- 'major': '全部合计:',
- 'donate': summaryJSON['donateTotal'].toFixed(2),
- 'fee': summaryJSON['feeTotal'].toFixed(2)
- }));
- // 为合计行添加自定义样式(隐藏序号列、复选框列,取消 hover 和 selected 效果)
- var summaryNode = Ext.get(view.getRow(storeCount)).addClass('mygrid-row-summary');
- // 找到合计行的外部容器节点
- var viewportNode = summaryNode.parent('.x-grid3-viewport');
- // 删除容器节点下直接子节点为 mygrid-row-summary 的节点
- viewportNode.select('> .mygrid-row-summary').remove();
- // 创建合计行的副本
- var cloneSummaryNode = summaryNode.dom.cloneNode(true);
- // 修改合计行的副本的样式,绝对定位,距离底部0px,显示副本(默认是占位隐藏 visibility: hidden;)
- Ext.get(cloneSummaryNode).setStyle({
- position: 'absolute',
- bottom: 0,
- visibility: 'visible'
- });
- // 向容器节点添加合计行的副本
- viewportNode.appendChild(cloneSummaryNode);
-
- }
- // 页面第一个加载完毕后执行的函数
- 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
|