首页 > 其他 > 详细

jqGrid onCellSelect和afterSaveCell实现列表单元格可编辑

时间:2021-04-11 16:17:22      阅读:14      评论:0      收藏:0      [点我收藏+]

页面:

技术分享图片

 xml代码:

    <button name="savebill" caption="保存" />
        <button name="examine" caption="审核" />
        <button name="noexamine" caption="反审核" />
        <button name="topay" caption="转薪资" />
        <grid name="mealSum" sorterItems="" cellEdit="true">
            <field name="personId" label="职员" />
            <field name="number" label="编码" />
            <!--描述-->
            <field name="year" label="年份" />
            <field name="month" label="月份" />
            <field name="BreakfastTimes" label="早餐次数" editable="true" />
            <field name="BreakfastCost" label="早餐费用" />
            <field name="lunchTimes" label="午餐次数" editable="true" />
            <field name="lunchCost" label="午餐费用" />
            <field name="DinnerTimes" label="晚餐次数" editable="true" />
            <field name="DinnerCost" label="晚餐费用" />
            <field name="CostSum" label="费用合计" editable="true" />
            <field name="mealstate" label="状态" />
        </grid>

js代码:

initalizeDOM : function () {
        var _self=this;
    shr.MonthMealSumResultList.superClass.initalizeDOM.call(this);//shr中MonthMealSumResultList文件
    // 强制隐藏工具栏
        $("#addNew").hide();// 隐藏创建
    $("#delete").hide();// 隐藏删除
    _self.dataInsertMonitor();
  },
onCellSelect: function (rowid, colIndex, cellcontent, e) {
    var _self = this;
        _self._initSelectedRowIdAndSelectRowData();
    //状态为已审核/已转薪资不可编辑
    var row = $("#grid").jqGrid("getRowData", rowid);
    if (row.mealstate == "1"||row.mealstate == "2") {
        $("#grid").jqGrid(‘setCell‘, rowid, "BreakfastTimes","", ‘not-editable-cell‘);
        $("#grid").jqGrid(‘setCell‘, rowid, "lunchTimes","", ‘not-editable-cell‘);
        $("#grid").jqGrid(‘setCell‘, rowid, "DinnerTimes","", ‘not-editable-cell‘);
        $("#grid").jqGrid(‘setCell‘, rowid, "CostSum","", ‘not-editable-cell‘);
        }
    // 选择的是选择框
    if (colIndex == 0) {
        //_self._addRowIdToSelectedRowId(rowid);
        var checked = $(_self.gridId).jqGrid(‘isChecked‘, rowid);
        f (!checked) {
            var index = $.inArray(rowid, _self.selectedRowId);
            _self.selectedRowId.splice(index, 1);
            //_self.selectedRowData.splice(index, 1);
        }
        return;
        }
    },
//月餐费计算和,实现单元格列表可编辑
dataInsertMonitor: function () {
    var self = this;
        $("#grid").jqGrid("option",{
    afterSaveCell :function(rowid,cellname,value,iRow,iCol,oldValue){
        var meal = 0;
        if(cellname == "BreakfastTimes"){
            meal = value*4;
    $("#grid").jqGrid("setCell",rowid,"BreakfastCost",meal,{color:‘red‘},"",true,true);
        }
        if(cellname == "lunchTimes"){
            meal = value*15;
            $("#grid").jqGrid("setCell",rowid,"lunchCost",meal,{color:‘red‘},"",true,true);
        }
        if(cellname == "DinnerTimes"){
            meal = value*6;
     $("#grid").jqGrid("setCell",rowid,"DinnerCost",meal,{color:‘red‘},"",true,true);
        }
        var breakCost = $("#grid").jqGrid("getCell",rowid,"BreakfastCost");
        var lunchCost = $("#grid").jqGrid("getCell",rowid,"lunchCost");
        var dinnerCost = $("#grid").jqGrid("getCell",rowid,"DinnerCost");
        var sum = breakCost*1+lunchCost*1+dinnerCost*1;
        $("#grid").jqGrid("setCell",rowid,"CostSum",sum,{color:‘red‘},"",true,true);
    }
});
     //保存按钮,调后台保存
    savebillAction:function(){
        var _self = this;
        var bills = [];
        var $grid = $(this.gridId);
        var selectedIds = $grid.jqGrid("getSelectedRows");
        if (selectedIds.length > 0) {
            if (typeof fieldName == ‘undefined‘ || !fieldName) {
                fieldName = this.getBillIdFieldName();
            }
            var id;
            for (var i = 0, length = selectedIds.length; i < length; i++) {
                id = $grid.jqGrid("getCell", selectedIds[i], fieldName);
                if (id && id.length > 0) {
                    var a = $(‘#grid‘).jqGrid(‘getRowRealData‘,id);
                    bills.push(a);
                    if (a.mealstate == "1") {
                        shr.showWarning({
                            message: a["personId.name"]+" 的员工状态为已审核"
                        });
                        return;
                    }
                    if (a.mealstate == "2") {
                        shr.showWarning({
                            message: a["personId.name"]+" 的员工状态为已转薪资"
                        });
                        return;
                    }
                }
            }
            var databill = shr.toJSON(bills);
            shr.showConfirm(‘您确认要保存吗?‘, function(){
                top.Messenger().hideAll();
                
                _self.remoteCall({
                method:"savebills",
                param:{data:databill},
                success:function(data){
                    if(data.result == "error"){
                        shr.showError({message:data.summary})
                    }else{
                        shr.showSuccess({
                            message: "保存成功!"
                        });
                        window.location.reload();
                    }
                    
                }
            });
            });
        }
        if (selectedIds.length <= 0) {
        shr.showWarning({
            message: "请先选中表格中的数据!"
        });
        };
    },
} 

 

jqGrid onCellSelect和afterSaveCell实现列表单元格可编辑

原文:https://www.cnblogs.com/Ning-Blog/p/14643365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!