kendoui中grid中新建一行序号加一

gird中新建行号自动加一

方法一

$("#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);
                        }
                    }
                });
            }
    },
    ... //省略
})

方法二

在新建方法的监听事件中:方法其实一样,只是换了个触发方式

function gridAddRow() {
    $('#grid').data('kendoGrid').addRow(); // 表格先加一行
                var data=$('#grid').data('kendoGrid').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].seqNum>data[i+1].seqNum)
                        {
                            t=data[i+1].seqNum;
                            data[i+1].seqNum=data[i].seqNum;
                            data[i].seqNum=t;
                        }
                    }
                    maxln=data[cd-1].seqNum;
                }
                //e.model.seqNum=maxln*1+1;
                $('#grid').data('kendoGrid')._data[0].seqNum=maxln*1+1;
                //console.log($('#grid').data('kendoGrid')._data[0]);
                //var uid=e.model.uid;
                $("#grid").find('tr').eq(1).find('td').eq(4).text(maxln*1+1);
                // 后台最大行号查询  略
                }

最后

其实还尝试过写在表格列的的
editor: function (container, options){
    // 代码 
}
但是效果没弄好,不推荐。

你可能感兴趣的:(kendo-ui)