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){
// 代码
}
但是效果没弄好,不推荐。