jQuery MiniUI

标题: DataGrid中的合计drawsummarycell [打印本页]

作者: LikeMiniUI    时间: 2013-5-24 10:52:03     标题: DataGrid中的合计drawsummarycell

我想请教一下,关于客户端合计。
当 DataGrid中对应的列值发生变化,合计部分会自动合计吗?

作者: factory    时间: 2013-5-24 11:15:46

不会,
1.可以保存数据,然后reload()表格
2.可以监听表格 单元格编辑完成 事件  
grid.getSummaryCellEl(columnName).innerHTML = ""
作者: obaba    时间: 2013-5-24 11:40:25

factory 发表于 2013-5-24 11:15
不会,
1.可以保存数据,然后reload()表格
2.可以监听表格 单元格编辑完成 事件  

ondrawsummarycell事件会触发的啊,以前就这么写过,还以为是新版本的变化呢,我刚刚还验证了一次
作者: factory    时间: 2013-5-24 11:45:31

obaba 发表于 2013-5-24 11:40
ondrawsummarycell事件会触发的啊,以前就这么写过,还以为是新版本的变化呢,我刚刚还验证了一次 ...

是会触发,但是需要你自己去计算修改合计里面的内容
作者: obaba    时间: 2013-5-24 11:58:42

factory 发表于 2013-5-24 11:45
是会触发,但是需要你自己去计算修改合计里面的内容

前台计算合计不就是这样实现的吗
作者: factory    时间: 2013-5-24 12:12:15

obaba 发表于 2013-5-24 11:58
前台计算合计不就是这样实现的吗

给列设定summaryType="max(count|min|max|sum|avg)",不然我们不知道你的汇总到底是相乘还是相加,还是平均,还是最大最小

然后监听ondrawsummarycell

e.cellHtml = 。。。

具体参考:http://www.miniui.com/demo/#src=datagrid/summary.html


作者: obaba    时间: 2013-5-24 12:20:45

factory 发表于 2013-5-24 12:12
给列设定summaryType="max(count|min|max|sum|avg)",不然我们不知道你的汇总到底是相乘还是相加,还是平 ...

所噶,原来还能这样。。
作者: LikeMiniUI    时间: 2013-5-24 13:57:39

    <div style="width:1000">
        <fieldset style="border-color: #FF9900;">
        <legend>承揽比例</legend>
            <div class="mini-toolbar" style="border-bottom:0;padding:0px;">
                <table style="width:100%;">
                    <tr>
                        <td style="width:100%;">
                            <a class="mini-button" iconCls="icon-add" plain="true">增加</a>
                            <span class="separator"></span>
                            <a class="mini-button" iconCls="icon-remove" plain="true">删除</a>
                            <span class="separator"></span>
                            <a class="mini-button" iconCls="icon-save" plain="true">保存</a>
                        </td>
                        <td style="white-space:nowrap;"></td>
                    </tr>
                </table>           
            </div>
            <div id="dgRate" class="mini-datagrid" showPager= "false" multiSelect="true"
                 showSummaryRow="true" >
                <div property="columns">
                    <div type="checkcolumn"  width="30" headerAlign="center"></div>
                    <div type="indexcolumn"  width="50" headerAlign="center">状况</div>
                    <div name="headDept" field="headDept_ID" displayField="headDept_NAME" width="150" headerAlign="center" >部门
                        <input property="editor" class="mini-combobox" valueField="ID" textField="NAME" style="width:100%;"
                            url="JsonService/CMS_Service.aspx?method=QueryHeadDepts" />
                    </div>
                    <div name="dept" field="dept_ID"  displayField="dept_NAME"  width="150" headerAlign="center" >职位
                        <input property="editor" class="mini-combobox" valueField="ID" textField="NAME" style="width:100%;" />
                    </div>
                    <div field="rate1" width="120" headerAlign="center" allowSort="true">承揽比例%
                        <input property="editor" class="mini-spinner" minValue="0" maxValue="100" decimalPlaces="2" summaryType="sum" style="width:100%;"/>
                    </div>
                    <div field="rate2" width="120" headerAlign="center" allowSort="true">销售比例%
                        <input property="editor" class="mini-spinner" minValue="0" maxValue="100" decimalPlaces="2" summaryType="sum" style="width:100%;"/>
                    </div>
                </div>
            </div>
        </fieldset>
    </div>

        // 新增记录
        function addRow(dg) {
            var grid = mini.get(dg);
            var row = {};
            grid.addRow(row);
            grid.beginEditRow(row);
        }
        // 保存记录
        function saveRow(dg) {
            // 获得增加、删除、修改的记录集合
            var grid = mini.get(dg);
            grid.commitEdit();
        }
        // 汇总
        function onDrawSummaryCellRate(e) {
            var result = e.result;
            var grid = e.sender;
            if (e.field == "rate1") {
                e.cellHtml = "合计: " + e.cellHtml;
            }
            if (e.field == "rate2") {
                e.cellHtml = "合计: " + e.value;
            }
        }
当我追加一行时,
我在点击保存
为何我的e.cellHtml或者e.value为空


作者: factory    时间: 2013-5-24 14:00:33

LikeMiniUI 发表于 2013-5-24 13:57
承揽比例
            
               

保存之后直接reload()
作者: factory    时间: 2013-5-24 14:00:34

LikeMiniUI 发表于 2013-5-24 13:57
承揽比例
            
               

保存之后直接reload()
作者: LikeMiniUI    时间: 2013-5-24 14:04:24

factory 发表于 2013-5-24 14:00
保存之后直接reload()

Factory 不好意思啊。我要reload必须和后台处理。
我的保存不是真的把数据放到DB。
reload会报json is error
作者: LikeMiniUI    时间: 2013-5-24 14:31:23

不行啊。直接reload();会报json is error
作者: LikeMiniUI    时间: 2013-5-24 15:21:10

那个DEMO是直接加载时,合计啊。
能不能给个例子,是在输入时,当我输入值后,就进行合计
作者: niko    时间: 2013-5-24 20:42:42

看这个例子:http://www.miniui.com/demo/#src=datagrid/drawcell2.html
作者: LikeMiniUI    时间: 2013-5-27 11:12:09

非常感谢。Niko




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2