当前位置:编程学习 > C#/ASP.NET >>

求GridView里产生滚动条,纵向时标题不动(用C#实现)

求GridView里产生滚动条,纵向时标题不动(用C#实现) --------------------编程问答-------------------- 用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);
}
--------------------编程问答-------------------- cpp2017(慕白兄) ( 五星(高级)) 信誉:100

偶像啊!!!!÷÷

向慕白兄学习并致敬!! --------------------编程问答-------------------- 这个都有人会?! --------------------编程问答-------------------- 来个更方便的
将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" --------------------编程问答-------------------- 学习收藏 --------------------编程问答-------------------- 这样行吗?测试一下 --------------------编程问答-------------------- mark --------------------编程问答-------------------- yzujjcb :这位兄弟的方法很简单、易用,VeryGOOD! --------------------编程问答-------------------- 学习下~~yzujjcb :这位兄弟的方法很简单、易用 --------------------编程问答--------------------
引用 4 楼 yzujjcb 的回复:
来个更方便的 
将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; 
 …

有空试看看,以前用的方法是孟老大的方法(孟子E章Gridview实现固定表头) --------------------编程问答-------------------- 来个更方便的 
将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 "
高手呀....... --------------------编程问答-------------------- 留个记号 --------------------编程问答-------------------- 横向纵向的都见过,搞得像EXCEL的冻结功能一样。 --------------------编程问答-------------------- 不错呀。学习了。 --------------------编程问答-------------------- 以后  估计能用到
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,