java grid动态行合并,ext的动态表格-合并单元格!解决方法

当前位置:我的异常网» Java Web开发 » ext的动态表格-合并单元格!解决方法

ext的动态表格-合并单元格!解决方法

www.myexceptions.net  网友分享于:2013-03-13  浏览:309次

ext的动态表格-----合并单元格!!!

这是在ext的panel中嵌套了一个jsp页面,所以很丑!!我想是不是可以在ext中直接画这样的表格啊??请高手指教指教!!!

------解决方案--------------------

var viewNodes=null;

function gridSpan(grid,rownum){

var array1 = new Array();

var minIndex=0;

var maxIndex=0;

var startValue;

var endValue;

var allRecs = grid.getStore().getRange();//所有数据

var count2 = grid.getStore().getCount();

var colName = grid.columns[rownum].dataIndex;// colName.dataIndex

// debugger;

var array1=new Array();

var rowspans=false;

for(var i=0;i

startValue=allRecs[i].data[colName];

endValue=allRecs[i+1].data[colName];

if(startValue==endValue){ //i=10 maxIndex=10 minIndex=0 i=11

rowspans=true;

if(minIndex>i){

minIndex=i;

}

if(maxIndex

maxIndex=i;

}

if(i>0&&rowspans){

var pre3=allRecs[i-1].data[colName]; //11 的值

startValue // 12 的值

endValue // 13 的值

if(pre3!=endValue){///这是合并两个的

maxIndex=maxIndex+1;

// alert("minIndex="+minIndex+" manIndex="+maxIndex);

rowSpan(grid,minIndex,maxIndex,rownum);//合并两个相等的

rowspans=false;

}else{

if(i==(count2-2)){

maxIndex=maxIndex+1;

// alert("minIndex="+minIndex+" manIndex="+maxIndex);

rowSpan(grid,minIndex,maxIndex,rownum);//最后两个相等的

rowspans=false;

}

}

}

}

else{

if(rowspans){

maxIndex=maxIndex+1;

// alert("minIndex="+minIndex+" manIndex="+maxIndex);

rowSpan(grid,minIndex,maxIndex,rownum);//最后两个相等的

minIndex=i+1;//12

rowspans=false;

i++;

}else{

minIndex=i+1;

}

}

}

}

function rowSpan(grid,startindex,endindex,rownum){

//viewNodes=grid.getView().getNodes();

//debugger;

// alert(viewNodes.length);

if(viewNodes!=null&&viewNodes!=""&&typeof(viewNodes)!='undefined'){

if(endindex>startindex&&rownum>-1){

var rows=endindex-startindex+1;

if(rows>=2){

var cell=viewNodes[startindex].childNodes;

for(var i=startindex+1;i<=endindex;i++){

viewNodes[i].deleteCell(rownum); //把需要合并的行除第一行之外td移去

}

cell[rownum].rowSpan=rows;

}

}

}

}

function tableRowSpan(store,grid,rownum,ps){ // 多列使用时 rownum 必须从高到底使用 (下表从零开始的) 如 ableRowSpan(store,grid,1);ableRowSpan(store,grid,0) rownum 是数组

store.on("load",function(store,record,q,s) {

var task = new Ext.util.DelayedTask(function(){

viewNodes=grid.getView().getNodes();

gridSpan(grid,rownum);

});

task.delay(100);

});

}

调用这个tableRowSpan 方法就可以咯!

文章评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值