拖动表格

 在JS中可以用 tableid.rows(i).InnerHtml.value 取得行值 tableid.cols(i).InnerHtml.value取得列值
如取得整个表格的数据,用二重循环即可

tableAct.htc拖动web 页面的表的整列:用html组件:tableAct.htc组件(或称行...
 

//---------------------------------------------------------------------
//sort
//
//---------------------------------------------------------------------
<public:event name="onrowselect" id=rowSelect />
<public:property name="hlColor" />
<public:property name="slColor" />
<public:property name='dragColor' />
<public:attach event="ondetach" onevent="cleanup()" />
<public:attach  event=oncontentready onevent="init();" />
<script language=jscript>
var currRow = -1;
var selRow = -1;
if (element.tagName == 'TABLE')
{
 element.attachEvent('onmouseover', onMouseOver);
 element.attachEvent('onmouseout', onMouseOut);
 element.attachEvent('onclick', onClick);
}
else
{
 alert("Error: tableAct not attached to a table element");
}
//******************************************************
//cleanup
//******************************************************
function cleanup()
{
 hilite(-1);
 element.detachEvent('onmouseover', onMouseOver);
 element.detachEvent('onmouseout', onMouseOut);
 element.detachEvent('onclick', onClick);
}
//******************************************************
//onClick
//******************************************************
function onClick()
{
 srcElem = window.event.srcElement;
 //crawl up the tree to find the table row
 while (srcElem.tagName != "TR" && srcElem.tagName != "TABLE")
  srcElem = srcElem.parentElement;
 if(srcElem.tagName != "TR") return;
 if(srcElem.rowIndex == 0 ) return;
 if (selRow != -1) selRow.runtimeStyle.backgroundColor = '';
 srcElem.runtimeStyle.backgroundColor = slColor;
 selRow = srcElem;
 var oEvent  = createEventObject();
 oEvent.selected = selRow;
 rowSelect.fire(oEvent);
}
//******************************************************
//onMouseOver
//******************************************************
function onMouseOver()
{
 srcElem = window.event.srcElement;
 //crawl up to find the row
 while (srcElem.tagName != "TR" && srcElem.tagName != "TABLE")
  srcElem = srcElem.parentElement;
 if(srcElem.tagName != "TR") return;
 if (srcElem.rowIndex > 0)
  hilite(srcElem);
 else
  hilite(-1);
}
//******************************************************
//onMouseOut
//******************************************************
function onMouseOut()
{
 // Make sure we catch exit from the table
 hilite(-1, -1);
}
//******************************************************
//hilite
//******************************************************
function hilite(newRow)
{
 if (hlColor != null )
 {
  if (currRow != -1 && currRow!=selRow)
  {
   currRow.runtimeStyle.backgroundColor = '';
  }
  if (newRow != -1 && newRow!=selRow)
  {
   newRow.runtimeStyle.backgroundColor = hlColor;
  }
 }
 currRow = newRow;
}

//******************************************************
// sort
//
// global variables
//
//******************************************************
var tbody=null;
var theadrow=null;
var colCount = null;
var lastclick = -1;     // stores the object of our last used object
var arrHitTest = new Array();
var bDragMode = false;
var objDragItem;
var arrHitTest = new Array();
var iArrayHit = false;

//******************************************************
//init
//******************************************************
function init() {
 // get TBODY - take the first TBODY for the table to sort
 tbody = element.tBodies(0);
 if (!tbody) return;
 //Get THEAD
 var thead = element.tHead;
 if (!thead)  return;

 theadrow = thead.children[0]; //Assume just one Head row
 if (theadrow.tagName != "TR") return;
 //theadrow.runtimeStyle.cursor = "hand";
 colCount = theadrow.children.length;
 var l, clickCell;
   var cx=0;
   var cy=0;
   var c;
 for (var i=0; i<colCount; i++)
 {
  clickCell = theadrow.children[i];
  clickCell.selectIndex = i;
  clickCell.attachEvent("onclick", doClick);
 }
}
//******************************************************
//doClick
//******************************************************
function doClick(e)
{
 var clickObject = e.srcElement;
 var iFlg = null;
 while (clickObject.tagName != "TD")
 {
  clickObject = clickObject.parentElement;
 }
 iFlg = 1;
  var buttonflg;
  buttonflg = ""
  if (clickObject.selectIndex=="0") {
    buttonflg="1";
 } else if (clickObject.selectIndex=="1") {
       buttonflg="2";
 } else if (clickObject.selectIndex=="2") {
       buttonflg="3";
 } else if (clickObject.selectIndex=="4") {
       buttonflg="4";
 } else if (clickObject.selectIndex=="6") {
       buttonflg="5";
 }
 if (buttonflg!="") {
     insertionSort(tbody,tbody.rows.length-1,buttonflg);
  }
}
//******************************************************
//formatNumtoStr
//******************************************************
function formatNumtoStr(Num){
 var newNum
 var i
 var iCount
 var iTemp
 var iTempResult
 var newNumResult
 newNum = Num
 for (i=0;i<=4;i++){
    newNum = newNum.replace(" ","")
    newNum = newNum.replace(" ","")
   newNum = newNum.replace(",","")
 }
 newNumResult="-"
 if (newNum.substr(0,1)=="-"){
     for(i=1;i<=newNum.length-1;i++){
          iTemp = newNum.substr(i,1)
          if (iTemp=="0"){
            iTempResult = "A"
          }else{
            iTempResult = 10-iTemp
          }
          newNumResult = newNumResult + iTempResult
     }
     newNum = newNumResult
 }

 if (newNum.length != 13){
      iCount = 13-newNum.length
      for (i=0;i<=iCount-1;i++){
         newNum = "0" + newNum
      }
 }
 return newNum
}
//******************************************************
//insertionSort
//******************************************************
function insertionSort(t,iRowEnd,buttonflg){
 //var st = new Date();
 var strArray;
 var strResultArray;
 var iMoveArray;
 var intPointArray
 var strCurrent;
 var strInsert;
 var strLast;
 strArray = new Array();
 strResultArray = new Array();
 intPointArray = new Array();
 for (i=0;i<=tbody.rows.length-1;i++){
     //asp
     if ((t.children[i].children[0].innerText == " " ) &&
         (t.children[i].children[1].innerText == " " ) &&
         (t.children[i].children[2].innerText == " " ) &&
         (t.children[i].children[4].innerText == " " ) &&
         (t.children[i].children[6].innerText == " ")){
         break;
     }

     if( typeof(t.children[i]) != "undefined") {
        if (buttonflg == "1"){       
       strArray.push(t.children[i].children[0].innerText
                  + t.children[i].children[1].innerText
                  + t.children[i].children[2].innerText
                  + t.children[i].children[4].innerText
                    + formatNumtoStr(t.children[i].children[6].innerText));
         } else if (buttonflg == "2"){
       strArray.push(t.children[i].children[1].innerText
                  + t.children[i].children[0].innerText
                  + t.children[i].children[2].innerText
                  + t.children[i].children[4].innerText
                    + formatNumtoStr(t.children[i].children[6].innerText));
         } else if (buttonflg == "3"){
       strArray.push(t.children[i].children[2].innerText
                  + t.children[i].children[0].innerText
                  + t.children[i].children[1].innerText
                  + t.children[i].children[4].innerText
                    + formatNumtoStr(t.children[i].children[6].innerText));
         } else if (buttonflg == "4"){
       strArray.push(t.children[i].children[4].innerText
                  + t.children[i].children[0].innerText
                  + t.children[i].children[1].innerText
                  + t.children[i].children[2].innerText
                    + formatNumtoStr(t.children[i].children[6].innerText));
       } else {
       strArray.push(formatNumtoStr(t.children[i].children[6].innerText)
                  + t.children[i].children[0].innerText
                  + t.children[i].children[1].innerText
                  + t.children[i].children[2].innerText
                    + t.children[i].children[4].innerText);;
       }
       strResultArray.push(strArray[i]);
    } else {
       strArray.push("");
       strResultArray.push("");
     }
    intPointArray.push(0);
 }
 
  //数据sort
 strResultArray.sort();
  //移动行(核心算法)
  for (i=0;i<=strResultArray.length-1;i++){
      iMoveArray = new Array();
      strCurrent = strResultArray[strArray.length-1-i];
      if (strLast!=strCurrent){
         for (j=0;j<=iRowEnd;j++){
                   strInsert = strArray[j];
                   if (strCurrent == strInsert){
                       iMoveArray.push(j + intPointArray[j]);
                       for (n=0;n<=j-1;n++){
                          intPointArray[n] = intPointArray[n] + 1;
                       }
                   }
         }
         for(m=0;m<=iMoveArray.length-1;m++){
             eRowInsert = t.children[iMoveArray[m]];
             eRowWalk = t.children[0];
             t.insertBefore(eRowInsert, eRowWalk);
         }
         strLast = strCurrent;
     }
 }
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值