MVC Easyui 行列合并,数据联动,界面增删不予数据库互动

2 篇文章 0 订阅

Vs2010 MVC 用Easyui 生成表格,实现不与数据库交互增删改查 数据联动

//删除参数
    delParam: function (options) {
        var grid = $('#MidPayCertificatees');
        var row = grid.datagrid('getSelected');
        if (row) {
            var rowsData = grid.datagrid('getRows');
            var len = rowsData.length - 3;
            //删除选中行
            if (this.rowIndex > len || len == 0 || this.rowIndex == 0) {
                alert("第一行不可删除!");
                return;
            }
            else {
                grid.datagrid('deleteRow', this.rowIndex);
            }
            //启用特定框编辑状态
            var ColATotal = 0;
            var ColBTotal = 0;
            var ColCTotal = 0;
            for (var i = 0; i < len; i++) {
                grid.datagrid('beginEdit', i);
                //本期小计
                var ColA = grid.datagrid('getRows')[i]["amount_borrowmoney"];
                var ColB = grid.datagrid('getRows')[i]["amount_advance"];
                var ColC = grid.datagrid('getRows')[i]["amount_measurement"];
                var ColD = grid.datagrid('getRows')[i]["amount_earnest"];
                var ColE = grid.datagrid('getRows')[0]["amount_CurrentAccumulated"];
                var ColF = grid.datagrid('getRows')[0]["lp_nowpayment"];
                ColA = ((ColA == "") ? 0 : parseFloat(ColA));
                ColB = ((ColB == "") ? 0 : parseFloat(ColB));
                ColC = ((ColC == "") ? 0 : parseFloat(ColC));
                ColD = ((ColD == "") ? 0 : parseFloat(ColD));
                ColE = ((ColE == "") ? 0 : parseFloat(ColE));
                ColF = ((ColF == "") ? 0 : parseFloat(ColF));
                ColATotal = ColATotal + ColA + ColB + ColC + ColD;
                ColBTotal = ColE - ColF;
                ColCTotal = ColE;
            };
            if (len > 0) {
                //本期小计
                grid.datagrid('getRows')[len]["applyDate"] = ColATotal.toFixed(2);
                $("td[field|=applyDate] div").eq(len + 1).text(ColATotal.toFixed(2));
                //截至本期期末累计
                grid.datagrid('getRows')[len + 1]["applyDate"] = ColBTotal.toFixed(2);
                var Curr = ColCTotal + ColATotal;
                $("td[field|=applyDate] div").eq(len + 2).text(Curr.toFixed(2));
                //差额
                var diff = ColBTotal + ColATotal;
                grid.datagrid('getRows')[0]["amount_difference"] = diff.toFixed(2)
                $("td[field|=amount_difference] div").eq(1).text(diff.toFixed(2));
            }
        }
    }

                          ## 添加行 合计 合并单元格**

**加粗样式
       //添加行
    addParam: function (options) {
        var me = this;
        var grid = $('#MidPayCertificatees');
        var parent = $(this).parents(".datagrid-row");
        var trObj = $(".datagrid-row");
        //添加同类型的参数
        var len = parseInt(grid.datagrid('getRows').length);
        var now = new Date();
        var year = now.getFullYear(); //得到年份
        var month = now.getMonth(); //得到月份
        var date = now.getDate(); //得到日期
        month = month + 1;
        if (month < 10) month = "0" + month;
        if (date < 10) date = "0" + date;
        var time = "";
        time = year + "-" + month + "-" + date;
        var rowdata = {
            row_id: '00000000-0000-0000-0000-000000000000',
            sec_id: options.sec_id,
            sec_userId: '',
            sec_userName: '',
            income_id: options.row_id,
            create_datetime: time,
            update_datetime: time,
            applyDate: time,
            amount_advance: 0,
            amount_measurement: 0,
            amount_CurrentAccumulated: 0,
            amount_earnest: 0,
            sec_name: options.sec_name,
            amount_borrowmoney: 0,
            lp_nowpayment: 0
        };
        if (len <= 1) {
            len = 1;
        }
        else {
            len = len - 2;
        }

        grid.datagrid('insertRow', { index: len, row: rowdata });
        this.rowIndex = len;
        grid.datagrid('selectRow', this.rowIndex)
        .datagrid('beginEdit', this.rowIndex);

        var rows = grid.datagrid('getRows');
        var ColATotal = 0;
        var ColBTotal = 0;
        var ColCTotal = 0;
        var ColDTotal = 0;
        var ColEtotal = 0;
        var ColFtotal = 0;
        var ColGTotal = 0;
        var rownum = 0;
        var DateTimeBox = [];
        if (rows.length == 1) {
            rownum = 3;
        }
        else {
            rownum = rows.length;
        }
        for (var i = 0; i < rownum - 2; i++) {
            grid.datagrid('beginEdit', i);
            //本期小计
            var ColA = grid.datagrid('getRows')[i]["amount_borrowmoney"];
            var ColB = grid.datagrid('getRows')[i]["amount_advance"];
            var ColC = grid.datagrid('getRows')[i]["amount_measurement"];
            var ColD = grid.datagrid('getRows')[i]["amount_earnest"];
            ColEtotal = grid.datagrid('getRows')[0]["amount_CurrentAccumulated"];
            var ColF = grid.datagrid('getRows')[0]["lp_nowpayment"];
            var qweqwe = grid.datagrid('getRows')[i]["applyDate"];
            DateTimeBox.push(grid.datagrid('getRows')[i]["applyDate"]);
            ColA = ((ColA == "") ? 0 : parseFloat(ColA));
            ColB = ((ColB == "") ? 0 : parseFloat(ColB));
            ColC = ((ColC == "") ? 0 : parseFloat(ColC));
            ColD = ((ColD == "") ? 0 : parseFloat(ColD));
            ColF = ((ColF == "") ? 0 : parseFloat(ColF));
            ColATotal = ColATotal + ColA + ColB + ColC + ColD;
            ColEtotal = ((ColEtotal == "") ? 0 : parseFloat(ColEtotal));
            ColGTotal = ColF;
        }
        var diff = ColATotal + ColEtotal - ColGTotal;
        //差额
        if (rows.length > 0) {
            grid.datagrid('getRows')[0]["amount_difference"] = diff.toFixed(2)
            $("td[field|=amount_difference] div").eq(1).text(diff.toFixed(2));
        }
        //--------------------------------------------------------
        $("td[field|=applyDate]").find(".datagrid-editable-input").keyup(function () {
            var parents = $(this).parents(".datagrid-row");
            var value = this.value;
            $("td[field|=applyDate] text", parents).text(value);

            var pId = parents.attr("id");
            var index = parseInt(pId.match(/\d+$/)[0]);
            grid.datagrid('getRows')[index]["applyDate"] = value;
        })
        if (rows.length == 1) {
            grid.datagrid("appendRow", {
                row_id: options.row_id,
                sec_id: options.sec_id,
                sec_userId: '',
                sec_userName: '',
                create_datetime: '',
                update_datetime: '',
                amount_differences: '',
                applyDate: ColATotal.toFixed(2),
                amount_advance: '',
                amount_measurement: '',
                amount_earnest: '',
                sec_name: "本期小计",
                amount_borrowmoney: 0,
                lp_nowpayment: 0

            });
            var number = ColATotal + ColEtotal;
            grid.datagrid("appendRow", {
                row_id: options.row_id,
                sec_id: options.sec_id,
                sec_userId: '',
                sec_userName: '',
                create_datetime: '',
                update_datetime: '',
                amount_differences: '',
                applyDate: number.toFixed(2),
                amount_advance: '',
                amount_measurement: '',
                amount_earnest: '',
                sec_name: "截至本期末累计",
                amount_borrowmoney: 0,
                lp_nowpayment: 0
            });
        }
        // 合并行 
        var rows = parseInt(grid.datagrid('getRows').length);
        var merges = [{
            index: 0,
            rowspan: rows
        }];
        for (var i = 0; i < merges.length; i++)
            $('#MidPayCertificatees').datagrid('mergeCells', {
                index: merges[i].index,
                field: 'lp_nowpayment',
                rowspan: merges[i].rowspan
            });
//            for (var i = 0; i < merges.length; i++)
//                $('#MidPayCertificatees').datagrid('mergeCells', {
//                    index: merges[i].index,
//                    field: 'sec_name',
//                    rowspan: merges[i].rowspan - 2
//                });
        for (var i = 0; i < merges.length; i++)
            $('#MidPayCertificatees').datagrid('mergeCells', {
                index: merges[i].index,
                field: 'amount_difference',
                rowspan: merges[i].rowspan
            });
        for (var i = 0; i < merges.length; i++)
            $('#MidPayCertificatees').datagrid('mergeCells', {
                index: rows - 1,
                field: 'applyDate',
                colspan: 5
            });
        for (var i = 0; i < merges.length; i++)
            $('#MidPayCertificatees').datagrid('mergeCells', {
                index: rows - 2,
                field: 'applyDate',
                colspan: 5
            })
        //加载成功后,设置数值间的联动  
        me.relativeChange();
    },

-----------------------------------------数据联动

//监听本期变动A
var parent = $(this).parents(".datagrid-row");
var trObj = $(".datagrid-row");
var grid = $(’#MidPayCertificatees’);
var rows = grid.datagrid(‘getRows’);
$(“td[field|=amount_borrowmoney] .numberbox-f”).keydown(function (event) {

    }).keyup(function () {

        //当前编辑框所在父行元素
        var parent = $(this).parents(".datagrid-row");
        //当前输入框所在grid索引
        var rowIndex = parent[0].rowIndex;
        //设置本身值
        var value = ((this.value == "" || this.value == "-") ? 0 : parseFloat(this.value));
        var valLength = value.toString();
        if (valLength.length > 14) {
            this.value = value = me.Numbertext(value);
        }
        grid.datagrid('getRows')[rowIndex]["amount_borrowmoney"] = value.toString()
        $("td[field|=amount_borrowmoney] input", trObj[rowIndex]).text(value.toString());
        //            var aa = grid.datagrid('getRows')[rowIndex]["amount_borrowmoney"];
        //启用特定框编辑状态
        var ColATotal = 0;
        var ColBTotal = 0;
        var ColCTotal = 0;
        for (var i = 0; i < rows.length - 2; i++) {
            grid.datagrid('beginEdit', i);
            //本期小计
            var ColA = grid.datagrid('getRows')[i]["amount_borrowmoney"];
            var ColB = grid.datagrid('getRows')[i]["amount_advance"];
            var ColC = grid.datagrid('getRows')[i]["amount_measurement"];
            var ColD = grid.datagrid('getRows')[i]["amount_earnest"];
            var ColE = grid.datagrid('getRows')[0]["amount_CurrentAccumulated"];
            var ColF = grid.datagrid('getRows')[0]["lp_nowpayment"];
            ColA = ((ColA == "") ? 0 : parseFloat(ColA));
            ColB = ((ColB == "") ? 0 : parseFloat(ColB));
            ColC = ((ColC == "") ? 0 : parseFloat(ColC));
            ColD = ((ColD == "") ? 0 : parseFloat(ColD));
            ColE = ((ColE == "") ? 0 : parseFloat(ColE));
            ColF = ((ColF == "") ? 0 : parseFloat(ColF));
            ColATotal = ColATotal + ColA + ColB + ColC + ColD;
            ColBTotal = ColE - ColF;
            ColCTotal = ColE;
        };
        var hbIndex = rows.length - 1;
        if (hbIndex > 0) {
            //本期小计
            grid.datagrid('getRows')[hbIndex - 1]["applyDate"] = ColATotal.toFixed(2);
            $("td[field|=applyDate] div").eq(hbIndex).text(ColATotal.toFixed(2));
            //截至本期期末累计
            grid.datagrid('getRows')[hbIndex]["applyDate"] = ColBTotal.toFixed(2);
            var Curr = ColCTotal + ColATotal;
            $("td[field|=applyDate] div").eq(hbIndex + 1).text(Curr.toFixed(2));
            //差额
            var diff = ColBTotal + ColATotal;
            grid.datagrid('getRows')[0]["amount_difference"] = diff.toFixed(2)
            $("td[field|=amount_difference] div").eq(1).text(diff.toFixed(2));
        }
    });
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值