<table>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
...........
</table>第一行表头不动,第二行开始滚动,请问怎么做啊

解决方案 »

  1.   

    function DoScrollTable(id)
     {
         var tb = document.getElementById(id);
         var eNext = tb.nextSibling;
         
         var th = tb.cloneNode(true)
            
         
         //记录宽度
         var ary  = new Array();
         var width = tb.offsetWidth;
         var height = tb.offsetHeight;
         for(var i=0;i<tb.rows[0].cells.length;i++)
         {
            ary[i] = tb.rows[0].cells[i].offsetWidth;
         }
         
         while(true && th.rows.length>1)
         {
             th.deleteRow(1);
         }
        
         tb.deleteRow(0)
         
         var divHeader = document.createElement("div");
         var divBody = document.createElement("div");
         tb.parentNode.replaceChild(divHeader,tb);
         divHeader.appendChild(th);
         if(eNext)
         {
            divHeader.parentNode.insertBefore(divBody,eNext);
         }else
         {
            divHeader.parentNode.appendChild(divBody);
         }
         divBody.appendChild(tb);
         divHeader.style.cssText = "width:100%;overflow:hidden";
         if(!document.all)
         {
           // divHeader.style.cssText = "width:"+(divBody.offsetWidth-20)+"px";
             
            th.width = divBody.offsetWidth-16;
         }
         
         divBody.style.cssText = "width:100%;overflow-y:auto;overflow-x:hidden;height:"+tb.getAttribute("viewheight") +"px";
         th.style.cssText ="table-layout:fixed"
         tb.style.cssText ="table-layout:fixed"
         
         if(parseInt(tb.getAttribute("viewheight").replace(/px/gi,"")) > height)
         {
            divBody.style.height = height;
         }
         //th.width =  null;
         if(tb.rows.length>0)
          {
            var tr1 = tb.rows[0];
            var th0 = th.rows[0];
            //th0.className = null;
            for(var i=0 ;i<tr1.cells.length;i++)
            {   
                th0.cells[i].style.width = ary[i];
                tr1.cells[i].style.width = ary[i];
                if(!document.all)
                {
                    th0.cells[i].width = ary[i];
                     tr1.cells[i].width = ary[i];
                }
            }
         }
         
         
          
         
         
         //alert(th.rows[0].cells[0].offsetWidth);
         //alert(tb.rows[0].cells[0].offsetWidth);
         //tb.rows[0].cells[0].style.width = "627px"
         //alert(tb.rows[0].cells[0].offsetWidth);
    }
      

  2.   

    body onload的时候或者直接写在页面下方
    调用 DoScrollTable(DataGrid1);
      

  3.   

    <table>
    <tr></tr>
    <tr></tr>
    <tr></tr>
    <tr></tr>
    ...........
    </table>
    表头如果如上内容放到另外一个table
    <div style="overflow-y:scroll:width:500px;height:100px">
    <table>
    <tr></tr>
    <tr></tr>
    <tr></tr>
    <tr></tr>
    ...........
    </table>
    </div>
      

  4.   

    smoothwood(吾谁与归) 这个方法我试过,这样表头与列就对不齐了