锁定行头和列头的表格组件

2023-12-08 0 635

1、在页面中引入风格单定义 <style> .LockHeadTable{behavior:url(/oblog312/LockHeadTable.htc)} </style> 2、在需要锁定行列头的表格定义中添加语句“class=\”LockHeadTable\””就OK了,其他参数有 ROWHEADNUM=\”锁定行数\” COLHEADNUM=\”锁定列数\” ROWHEADSTYLE=\”行表头风格\” COLHEADSTYLE=\”列表头风格\” ROWSTYLE=\”行风格1|行风格2|……|行风格n\” FOCUSSTYLE=\”获得鼠标焦点时的风格\” 3、点击行标题时可以对数据进行排序 注意:   使用本组件时,行表头中的单元格不允许跨行 例: <tableclass=\”LockHeadTable\”ROWHEADNUM=3COLHEADNUM=1ROWHEADSTYLE=\”background:#F7F7F7;color:black;\”COLHEADSTYLE=\”background:#F7F7F7;color:black;\”ROWSTYLE=\”background:#FFFFFF;color:black;|background:#F7F7F7;color:black;\”FOCUSSTYLE=\”background:green;color:white;\”width=\”1500\”border=\”1\”cellpadding=\”3\”cellspacing=\”0\”align=\”center\”> 源代码: LockHeadTable.htc(组件程序) <PUBLIC:COMPONENT> <PUBLIC:PROPERTYNAME=\”ROWHEADNUM\”/> <PUBLIC:PROPERTYNAME=\”COLHEADNUM\”/> <PUBLIC:PROPERTYNAME=\”ROWHEADSTYLE\”/> <PUBLIC:PROPERTYNAME=\”COLHEADSTYLE\”/> <PUBLIC:PROPERTYNAME=\”ROWSTYLE\”/> <PUBLIC:PROPERTYNAME=\”FOCUSSTYLE\”/> <script> //初始化 ROWHEADNUM=(ROWHEADNUM==null?0:parseInt(ROWHEADNUM,10)); COLHEADNUM=(COLHEADNUM==null?0:parseInt(COLHEADNUM,10)); ROWHEADSTYLE=(ROWHEADSTYLE==null?\”\”:ROWHEADSTYLE); COLHEADSTYLE=(COLHEADSTYLE==null?\”\”:COLHEADSTYLE); arrRowStyle=(ROWSTYLE==null?newArray(\”\”):ROWSTYLE.split(\”|\”)); //设置行表头 vari,j,rowItem,cellItem; rowHead=element.cloneNode(true); for(i=0;i<ROWHEADNUM;i++){ rowItem=element.rows(i); rowItem.style.cssText=\’z-index:10;position:relative;top:expression(this.offsetParent.scrollTop);\’+ROWHEADSTYLE; } //设置列表头 for(i=0;i<element.rows.length;i++){ rowItem=element.rows(i); if(i>=ROWHEADNUM){ rowItem.style.cssText=\”position:relative;\”+arrRowStyle[(i-ROWHEADNUM)%arrRowStyle.length]; if(FOCUSSTYLE!=null){ rowItem.onmouseover=function(){this.style.cssText=\”position:relative;\”+FOCUSSTYLE;} rowItem.onmouseout=function(){this.style.cssText=\”position:relative;\”+arrRowStyle[(this.rowIndex-ROWHEADNUM)%arrRowStyle.length];} } } for(j=0;j<COLHEADNUM;j+=cellItem.colSpan){ cellItem=rowItem.cells(j); cellItem.style.cssText=\’position:relative;left:expression(this.parentElement.offsetParent.scrollLeft);\’ +(i<ROWHEADNUM?\’\’:COLHEADSTYLE); } } //设置行标题排序 for(i=0;i<ROWHEADNUM;i++){ rowItem=element.rows(i); for(j=0;j<rowItem.cells.length;j++){ cellItem=rowItem.cells(j); if(cellItem.rowSpan==ROWHEADNUM-i){ cellItem.style.cursor=\”hand\”; cellItem.sortAsc=true; cellItem.onclick=sortTable; } } } //排序 functionsortTable(){ varobjCol=event.srcElement; if(objCol.tagName==\”TD\”){ varintCol=objCol.cellIndex; objCol.sortAsc=!objCol.sortAsc; sort_type=\’Num\’; if(isNaN(parseInt(element.rows(ROWHEADNUM).cells(intCol).innerText,10))) sort_type=\’Asc\’; vari,j,boltmp; for(i=ROWHEADNUM;i<element.rows.length;i++) for(j=i+1;j<element.rows.length;j++){ switch(sort_type){ case\’Num\’: boltmp=(parseInt(element.rows(i).cells(intCol).innerText,10)>=parseInt(element.rows(j).cells(intCol).innerText,10)); break; case\’Asc\’: default: boltmp=(element.rows(i).cells(intCol).innerText>=element.rows(j).cells(intCol).innerText); } if((objCol.sortAsc&&!boltmp)||(!objCol.sortAsc&&boltmp)){ element.moveRow(j,i); } } } } </script> </PUBLIC:COMPONENT>

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 htc 锁定行头和列头的表格组件 https://www.u-9.cn/jiaoben/htc/145119.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务