zoukankan      html  css  js  c++  java
  • (转)GridView或DataGrid 固定表头,滚动数据的例子.

    1.主要利用table style的 layout=fixed属性按照当前表头再copy一个table,显示在当前datagrid或gridview的前面.

    2.注意:调用的时候,datagrid 或gridview       要有style="table-layout:fixed" 和 width=?? 属性.

      另外还有个自定义属性 viewheight 是可选,表示滚动内容区域的高度

      脚本中更改一下DataGrid或GridView的ID即可.

      该示例在IE7 和 FireFox下测试通过.

    以下是示例:

     <asp:GridView style="table-layout:fixed"  viewheight="100"  ........

    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 = "100%;overflow:hidden";
         if(!document.all)
         {
           // divHeader.style.cssText = ""+(divBody.offsetWidth-20)+"px";
             
            th.width = divBody.offsetWidth-16;
         }
         
         divBody.style.cssText = "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);
    }

  • 相关阅读:
    【已解决】ERR_BLOCKED_BY_XSS_AUDITOR:Chrome 在此网页上检测到了异常代码:解决办法
    【已解决】Microsoft visual c++ 14.0 is required问题解决办法
    爬虫处理网站的bug---小于号未转化为实体符
    pymysql 在数据库中插入空值
    python 正则括号的使用及踩坑
    pymysql 解决 sql 注入问题
    python3 操作MYSQL实例及异常信息处理--用traceback模块
    LeetCode 837. 新21点 | Python
    LeetCode 面试题64. 求1+2+…+n | Python
    LeetCode 101. 对称二叉树 | Python
  • 原文地址:https://www.cnblogs.com/weicleer/p/2771589.html
Copyright © 2011-2022 走看看