流水号剩最后一行点删除流水号不变

问题背景

在我们的行式填报表中当存在流水号的时候,删除流水号所在行,当删除到最后一行时,再点击删除按钮,流水号会变化(增加)。客户对于这点提出了很多异议,希望能够实现当删除最后一行时,流水号不变。

问题分析

行式填报表的删除实际上是通过页面jstrdisplay属性改成了none,即改行不可见。而行式填报表是不允许所有行都被删除,即最后要保留一行。目前的现象我们可以理解为,当删除到最后一行时,改行删除,而报表又自动增加了一行,所以流水号会一直增大不断变化。

所以我们要做的就是判断当删除最后一行时,不再执行删除操作,返回false

实现

在页面中加入如下js函数,并传递相应参数即可

/*参数说明:

* topCount–报表中流水号所在行上面的行数

* bottomCount–报表中流水号所在行下面的行数

* reportName–报表名,report:htmlname的值

*/

function _delLine(topCount,bottomCount,reportName){

//alert(topCount+” “+bottomCount+” “+reportName);

var oldvalue=”"; //单元格修改前的原值

var tableRowNum = document.getElementById(reportName).rows.length;

//循环获取displaynone的行

//alert(document.getElementById(“report1_row2″).style.display);

var noneCount = 0;

var trDisplay = “”;

for(var i=1;i<=tableRowNum;i++){

trDisplay = document.getElementById(reportName+”_row”+i).style.display;

//alert(“trDisplay:”+trDisplay);

if(trDisplay==”none”){

noneCount++;

}

}

//alert(“noneCount=”+noneCount);

if((tableRowNum-topCount-bottomCount-noneCount)==1){

alert(“最后一行,已无法删除!“);

return false;

}

//删除行

_deleteRow(eval(reportName));

}

我们看一下最后的效果:

本文标签: