gird中新建行号自动加一

本文介绍如何在KendoGrid中实现编辑时行号的自动排序与更新,包括前后端验证行号逻辑,确保数据的一致性和完整性。通过示例代码详细解释了如何在编辑操作触发时,根据当前数据源的状态调整行号,以及如何通过AJAX请求从后端获取最大行号进行比较和更新。

$("#grid").kendoGrid({
    ... //省略
    edit:function(e){
        if(e.model.isNew()){   // 新建按钮,和新增的行都可触发
                //grid 的 dataSource
                var data=dataSource.data().toJSON();  
                var cd=data.length;
                var maxln=0;
                if(cd>1){
                    for(var i=0;i<(cd-1);i++){
                        var t=0;
                        if(data[i].lineNumber>data[i+1].lineNumber)
                        {
                            t=data[i+1].lineNumber;
                            data[i+1].lineNumber=data[i].lineNumber;
                            data[i].lineNumber=t;
                        }
                    }
                    // 找出 dataSource 的最大行号
                    maxln=data[cd-1].lineNumber;
                }
                // 后台验证 找出最大行号
                $.ajax({
                    url:BaseUrl +"/hap/om/order/lines/findMaxLineNumber",
                    type:"post",
                    data:{headerId:viewModel.model.headerId},
                    success:function(data){
                        // 后台数据库最大行号大于前台最大行号
                        if((data*1)>maxln){
                            // 最大行号 赋值给该行的lineNumber
                            e.model.lineNumber=data*1+1;
                            // 该行的uid
                            var uid=e.model.uid;
                            // 赋值 给表格列
                            $("#grid").find('tr[data-uid='+uid+']').find('td').eq(1).text(data+1);
                            //或者:$("#grid").find('tr').eq(1).find('td').eq(1).text(data+1);
                        }else{
                            // 否则
                            e.model.lineNumber=maxln*1+1;
                            var uid=e.model.uid;
                            $("#grid").find('tr[data-uid='+uid+']').find('td').eq(1).text(maxln+1);
                        }
                    }
                });
            }
    },
    ... //省略
})

转载于:https://www.cnblogs.com/chengshixiaonongming/p/10373229.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值