用js:DoScrollTable("GridView1");
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);
}

解决方案 »

  1.   

    cpp2017(慕白兄) ( 五星(高级)) 信誉:100偶像啊!!!!÷÷向慕白兄学习并致敬!!
      

  2.   

    来个更方便的
    将Gridview放到一个div里面,设置div的style="overflow: auto;"
    再加CSS .DataGridFixedHeader 
    {
     POSITION: relative ; 
     TOP: expression(this.offsetParent.scrollTop);
     BACKGROUND-COLOR: blue ;
     height:25px;
     color:#ffffff;
     text-align:center ;
     vertical-align:middle;
     font-weight:bold;
     font-size:13px;
     background-color:#5D7B9D;
     }
    设置Gridview的 HeaderStyle的CSSClass="DataGridFixedHeader"
      

  3.   

    yzujjcb :这位兄弟的方法很简单、易用,VeryGOOD!
      

  4.   

    学习下~~yzujjcb :这位兄弟的方法很简单、易用
      

  5.   

    有空试看看,以前用的方法是孟老大的方法(孟子E章Gridview实现固定表头)
      

  6.   

    来个更方便的 
    将Gridview放到一个div里面,设置div的style= "overflow:   auto; " 
    再加CSS   .DataGridFixedHeader   

      POSITION:   relative   ;   
      TOP:   expression(this.offsetParent.scrollTop); 
      BACKGROUND-COLOR:   blue   ; 
      height:25px; 
      color:#ffffff; 
      text-align:center   ; 
      vertical-align:middle; 
      font-weight:bold; 
      font-size:13px; 
      background-color:#5D7B9D; 
      } 
    设置Gridview的   HeaderStyle的CSSClass= "DataGridFixedHeader "
    高手呀.......
      

  7.   

    横向纵向的都见过,搞得像EXCEL的冻结功能一样。