拖拉表格改变列宽时,setCapture();releaseCapture();

问题描述

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><TITLE>NewDocument</TITLE><METANAME="Generator"CONTENT="EditPlus"><METANAME="Author"CONTENT=""><METANAME="Keywords"CONTENT=""><METANAME="Description"CONTENT=""><scripttype="text/javascript">functionGrid(){varself=this;this.init=function(){vartableHeader=newArray;tableHeader[tableHeader.length]="编号";tableHeader[tableHeader.length]="名称";tableHeader[tableHeader.length]="单位";tableHeader[tableHeader.length]="单价";tableHeader[tableHeader.length]="数量";tableHeader[tableHeader.length]="金额";varcolLength=6;varcolWidths=newArray;colWidths[colWidths.length]="100";colWidths[colWidths.length]="150";colWidths[colWidths.length]="80";colWidths[colWidths.length]="80";colWidths[colWidths.length]="80";colWidths[colWidths.length]="120";//创建gridself.divBoxObj=document.getElementById("myTableDiv");self.tableObj=document.createElement("table");self.tableObj.id="wwTable";self.tableObj.style.tableLayout="fixed";self.tableObj.cellPadding=0;self.tableObj.cellSpacing=0;self.tableObj.style.borderCollapse="collapse";self.tableObj.border=1;self.tableObj.borderColor="#cecece";self.tableObj.height="22px";varelRow=self.tableObj.insertRow();for(i=0;i<colLength;i++){varelCell=elRow.insertCell();elCell.align="center";elCell.height="22px";elCell.width=colWidths[i];elCell.onmousemove=self.grid_onMouseMove;elCell.onmousedown=self.grid_onMouseDown;elCell.onmouseup=self.grid_onMouseUp;elCell.innerText=tableHeader[i];}self.tableObj.insertRow().height="22px";self.tableObj.insertRow().height="22px";self.divBoxObj.appendChild(self.tableObj);varhr=document.createElement("<hrid='myHr'style='DISPLAY:none;WIDTH:1px;POSITION:absolute;HEIGHT:132px'color=black>");self.divBoxObj.appendChild(hr);}this.grid_onMouseMove=function(){varEventSource=event.srcElement;//捕获触发事件的对象this.col=EventSource.cellIndex;self.tableObj.rows(0).style.cursor="default";if(this.col>0){if(event.x-parseInt(self.divBoxObj.offsetLeft)>=parseInt(self.tableObj.rows(0).cells(this.col).offsetLeft)-12-self.divBoxObj.scrollLeft&&event.x-parseInt(self.divBoxObj.offsetLeft)<=parseInt(self.tableObj.rows(0).cells(this.col).offsetLeft)+7-self.divBoxObj.scrollLeft){self.tableObj.rows(0).style.cursor="e-resize";if(this.onMouseDownFlag){if(parseInt(this.tdWidth)+parseInt((parseInt(event.x)-parseInt(this.downOffsetLeft)))>0){self.tableObj.rows(0).cells(this.changeCol-1).width=parseInt(this.tdWidth)+parseInt((parseInt(event.x)-parseInt(this.downOffsetLeft)));}elseif(parseInt(this.tdWidth)+parseInt((parseInt(event.x)-parseInt(this.downOffsetLeft)))<=0){self.tableObj.rows(0).cells(this.changeCol-1).width=3;}document.getElementById("myHr").style.left=event.x+parseInt(self.divBoxObj.scrollLeft)-parseInt(self.divBoxObj.offsetLeft)-2;}}else{self.tableObj.rows(0).style.cursor="default"}}}this.grid_onMouseUp=function(){document.getElementById("myHr").style.display="none";this.tableEventSource.releaseCapture();this.onMouseDownFlag=false;this.downOffsetLeft=0;this.tdWidth=0;this.col=-1this.changeCol=-1}this.grid_onMouseDown=function(){this.tableEventSource=event.srcElement;//捕获触发事件的对象if(self.tableObj.rows(0).style.cursor=="e-resize"){document.getElementById("myHr").style.display="block";document.getElementById("myHr").style.height=self.tableObj.rows(0).offsetHeight;document.getElementById("myHr").style.left=event.x+parseInt(self.divBoxObj.scrollLeft)-parseInt(self.divBoxObj.offsetLeft)-2;document.getElementById("myHr").style.top=parseInt(self.tableObj.offsetTop)+2;this.changeCol=this.col;this.downOffsetLeft=event.x;this.tdWidth=self.tableObj.rows(0).cells(this.changeCol-1).width;this.onMouseDownFlag=true;this.tableEventSource.setCapture();}}this.init();}functiontoOnload(){varGird=newGrid();}</script></HEAD><BODYonload="toOnload();">希望高手能在我代码基础上修改正确。<divid="myTableDiv"style="FONT-SIZE:12px;overflow:auto;clip:rect();width:100%;height=64%;border:1px#CECECEsolid;FONT-FAMILY:宋体;"></div></BODY></HTML>

解决方案

解决方案二:
帮顶!
解决方案三:
该回复于2010-01-19 17:24:04被版主删除
解决方案四:
楼主想干嘛说清楚

时间: 2024-12-21 21:03:44

拖拉表格改变列宽时,setCapture();releaseCapture();的相关文章

开放问题-VS动态添加的表格如何改变列宽?

问题描述 VS动态添加的表格如何改变列宽? 我用VS动态添加了一个表格,由于一些列的内容较长,没办法全部看到,我想问下如何拖拉实现改变列宽- 解决方案 js动态添加表格的行与列 解决方案二: 仿Microsoft Excel单元格拖拽修改表格列宽 解决方案三: 我现在也想做个这样的表格,请问你是用的哪种控件

Excel2007基础教程:改变列宽和行高

Excel2007基础教程:改变列宽和行高 经常需要改变列宽和行高.例如,可以将列变窄以在打印页中容纳更多信息.或者您可能想增加行的高度来创建一个"双倍空间"的效果. Excel 提供了几种改变列宽和行高的方法.1 .改变列宽 列宽是根据在单元格中填充的"固定间距字体" 字符的数量来测量的.默认状态下,列宽为8 .43 个单位,相当于64 像素. 提示:如果一个含有数值的单元格中全是井号(刑, 这就表示列宽不足以容纳单元格中的信息. 加大列宽可以解决这个问题. 在改

JS实现可改变列宽的table实例

本文为大家详细介绍下通过JS实现可改变列宽的table,具体的思路及代码如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助   复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>table</title> </head> <body> <table id="tb_1" cells

wpf-Wpf 中在listview的header部位双击 怎么禁止改变列宽

问题描述 Wpf 中在listview的header部位双击 怎么禁止改变列宽 列与列之间的分隔部分双击 会自动调整宽度 这个功能怎么禁止

求教:gridview导出Excel后,表格的列宽如何设成最适应列宽。

问题描述 gridview导出Excel后,表格的列宽如何设成最适应列宽.还有,表格除了GridView的内容外,其余的空白表格没有网格线.求大神教教.谢谢了.急.protectedvoidButton1_Click(objectsender,EventArgse){Export("application/ms-excel","学生成绩报表.xls");GridView1.Enabled=true;}privatevoidExport(stringFileType,

JS实现可改变列宽的table实例_javascript技巧

复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>table</title> </head> <body> <table id="tb_1" cellspacing="0" cellpadding="2" width="100%&

可通过拖动改变列宽的表格

 title1中国  title2  title3  title4  content11  content12  content13  content14  content21  content22  content23  content24  content31  content32  content33  content34

easyui datagrid 列的内容超出所定义的列宽时,自动换行

 在datagrid中添加一句,DataGrid属性中的nowrap:false. (默认为true). 注意nowrap不是列属性, <th data-options="field:'roleName',width:60,align:'center',nowrap:false">xxx</th>   这样是不行的.   需要写在datagrid中 eg: html:   <table id="_main_table"> <

JGrid中拖动改变列宽的脚本 原型_javascript技巧

拖动我1 拖动我2 拖动我3 拖动我4 拖动我5