• jquery easyUI datagrid自动计算两列的值


    在网上找了一些自动计算两列的方法,全部都是只能修改已有的数据的时候自动计算,而不能在添加一行数据的时候自动计算,自己花时间研究了一下,可实现类似计算报价的功能。效果如下图:

    image

    HTML Code:
    <table id="baojia" style="948px;height:auto" title="报价详细" iconCls="icon-edit" singleSelect="true" idField="itemid">   
            <thead>   
                <tr>   
                    <th field="itemid" width="180" editor="text">设备名称</th>
                    <th field="attr1" width="80" editor="text">型号</th>
                    <th field="brand" width="100" editor="text">品牌</th>
                    <th field="amount" width="80" align="right" editor="{type:'numberbox',options:{precision:0}}">数量</th>  
                    <th field="listprice" width="80" align="right" editor="{type:'numberbox',options:{precision:2}}">单价</th>   
                    <th field="unitcost" width="80" align="right" editor="{type:'numberbox',options:{precision:2}}">小计</th>
                </tr>
            </thead>
            <tfoot>
                <td colspan="6">总价:</td>
            </tfoot>
    </table>
    JS Code:
    $(function(){
        var lastIndex;
        $('#baojia').datagrid({
            showFooter:true,
            fitColumns:true,
            toolbar:[{
                text:'添加',
                iconCls:'icon-add',
                handler:function(){
                    $('#baojia').datagrid('endEdit', lastIndex);
                    $('#baojia').datagrid('appendRow',{
                        itemid:'',
                        attr1:'',
                        amount:'',
                        brand:'',
                        unitcost:'',
                        listprice:''                      });
                    lastIndex = $('#baojia').datagrid('getRows').length-1;
                    $('#baojia').datagrid('selectRow', lastIndex);
                    $('#baojia').datagrid('beginEdit', lastIndex);
                    setEditing(lastIndex);//此句较为重要
                }
            },'-',{
                text:'删除',
                iconCls:'icon-remove',
                handler:function(){
                    var row = $('#baojia').datagrid('getSelected');
                    if (row){
                        var index = $('#baojia').datagrid('getRowIndex', row);
                        $('#baojia').datagrid('deleteRow', index);
                    }
                }
            }],
            onBeforeLoad:function(){
                $(this).datagrid('rejectChanges');
            },
            onClickRow:function(rowIndex){
    
                if (lastIndex != rowIndex){
                    $('#baojia').datagrid('endEdit', lastIndex);
                    $('#baojia').datagrid('beginEdit', rowIndex);
                    setEditing(rowIndex);
                }
                lastIndex = rowIndex;
            }
        })
            
            //计算报价小计
        function setEditing(rowIndex){
            var editors = $('#baojia').datagrid('getEditors', rowIndex);    
            var priceEditor = editors[4];
            var amountEditor = editors[3];    
            var costEditor = editors[5];    
            priceEditor.target.bind("change", function(){    
                calculate();
            });    
            amountEditor.target.bind("change", function(){    
                calculate();    
            });    
            function calculate(){    
                var cost = (priceEditor.target.val())*(amountEditor.target.val());
                console.log(cost);
                costEditor.target.numberbox("setValue",cost);    
            }    
        }
    });

    在添加按钮的handler里加入setEditing(rowIndex);可实现在新增的行里自动计算,如果没有加入这句,则需要再新增一行后,再回来点击此行编辑的时候才会自动计算。

    参考资料:http://api.btboys.com/easyui/

  • 相关阅读:
    Android BroadcastAnyWhere(Google Bug 17356824)漏洞具体分析
    读写Word的组件DocX介绍与入门
    2015年终总结,忙碌与有所收获的一年,2016年继续努力!
    数据库题——高于部门平均工资查询问题
    Oracle 简单的列转行
    行香子&#183;过尽千山
    ZOJ2599:Graduated Lexicographical Ordering(很经典的数位DP)
    【oracle11g,18】存储结构:暂时表,手工条带化,表/索引迁移表空间,删除表,外部表
    联想S820 MIUI刷机包 MIUI 4.4.30 流畅执行 在线主题破解
    android开发艺术探索学习 之 结合Activity的生命周期了解Activity的LaunchMode
  • 原文地址:https://www.cnblogs.com/yoomin/p/3491202.html
Copyright © 2020-2023  润新知