流水号剩最后一行点删除流水号不变
问题背景
在我们的行式填报表中当存在流水号的时候,删除流水号所在行,当删除到最后一行时,再点击删除按钮,流水号会变化(增加)。客户对于这点提出了很多异议,希望能够实现当删除最后一行时,流水号不变。
问题分析
行式填报表的删除实际上是通过页面js将tr的display属性改成了none,即改行不可见。而行式填报表是不允许所有行都被删除,即最后要保留一行。目前的现象我们可以理解为,当删除到最后一行时,改行删除,而报表又自动增加了一行,所以流水号会一直增大不断变化。
所以我们要做的就是判断当删除最后一行时,不再执行删除操作,返回false。
实现
在页面中加入如下js函数,并传递相应参数即可
/*参数说明:
* topCount–报表中流水号所在行上面的行数
* bottomCount–报表中流水号所在行下面的行数
* reportName–报表名,report:html中name的值
*/
function _delLine(topCount,bottomCount,reportName){
//alert(topCount+” “+bottomCount+” “+reportName);
var oldvalue=”"; //单元格修改前的原值
var tableRowNum = document.getElementById(reportName).rows.length;
//循环获取display为none的行
//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));
}
我们看一下最后的效果: