JSP有个表格,表格的记录数很多,但不翻页,也就是说要在一个页面展示,但这样一来会造成页面的高度太夸张,我试过将表头单独的用个table,然后表体再用一个table,再将表体的table放在div里(因为div有带滚动条的样式),但由此引起的问题时,因为表头和表体不在同一个表里,会造成表头和表体之间列的对应错位。代码如下:
<table>
  <tr>
    <td>姓名</td><td>性别</td>
   </tr>
</table>
<div style="滚动条属性">
<table>
  <tr>
    <td>张三</td><td>男</td>
   </tr>
</table>
</div>
如果将表头和表体放在同一个div里,滚动的时候,表头也会随着滚动,这样一来,拉到后面的记录时就看不到表头了,这样是不行的。列之间的宽度不能固定死,因为要随着内容自动调整宽度的。
有哪位高手能提供其它解决办法呢?要求就是表头固定,表体能滚动。

解决方案 »

  1.   

    你加个iframe呗 让iframe滚动效果就跟excel的冻结单元格一样
      

  2.   

    顶楼上,iframe
    表格放在iframe中,iframe设置scrolling="auto" frameborder="0" width="100%"
    高度就看你的需求了
      

  3.   

    ,iframe
    表格放在iframe中,iframe设置scrolling="auto" frameborder="0" width="100%"
    高度就看你的需求了
      

  4.   

    可以用JS根据自动调整过的列宽设置列标题宽度。另外,表体中内容过多时,可以考虑使用伪翻页效果,即数据都存在同一页面中,但每次只显示一屏的记录数量,根据所选“记录页码”切换显示。或者有必要就做成AJAX的即时查询翻页。感觉这样比较好些,因为很多时候用户只需要看前面一两页就是了。设计数据呈现页面的原则,就是提供准确的信息,这个意义就是精简有效。大而全,让用户迷失在数据的海洋里,用户怎么可能喜欢。
      

  5.   

    LOOK,LOOK,   呵呵。 
     学知识。  
      

  6.   

    <table>
      <tr>
      <td>姓名</td><td>性别</td>
      </tr>
     <tr>
      <td colspan="2">
      <div style="滚动条属性">
    <table>
      <tr>
      <td>张三</td><td>男</td>
      </tr>
    </table>
    </div>
    </td>
    </tr>
    </table>
    这样呢
      

  7.   

    /*重点:固定行头样式*/
    .scrollRowThead{position: relative; left: expression(this.parentElement.parentElement.parentElement.parentElement.scrollLeft);z-index:0;}
    /*重点:固定表头样式*/
    .scrollColThead{position: relative; top: expression(this.parentElement.parentElement.parentElement.scrollTop);z-index:2;}
    /*行列交叉的地方*/
    .scrollCR { z-index:3;}
    /*行头列头背景*/
    .scrollRowThead,.scrollColThead td{background-color:rgb(188,232,246);font-weight: bold;}
    /*表格的线*/
    .scrolltable{border-bottom:1px solid #CCCCCC; border-right:1px solid #CCCCCC;}
    /*单元格的线等*/
    .scrolltable td{border-left: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; padding: 3px;}
    示例:<div style="position: absolute; overflow-y: auto; top: 12%;left: 1%; width: 98%;right: 1%; height: 60%;">
    <table id="btable" border="0" width="100%" cellpadding="3" cellspacing="0" class="scrolltable">
    <tr class="scrollRowThead">
    </tr>
    </table>
    </div>
    把分拿来!!!
      

  8.   

    也做过类似的事情,
    将表头放到一个层的Table中间,然后将表体也放到另一个层的Table中,
    表体的层样式为:overflow: auto;这样层的效果就类似于iframe.至于表头中各列的宽度要和表体中各列宽度对应,是使用的js方法去自适应的.
      

  9.   


    这个方法试过了不行,貌似iframe里只能放url,放table的话这个table读不出来。
      

  10.   

    我竟然用freamset嵌套freamset,不过结果还行
      

  11.   

    把表的内容 放到div里面!让div滚动!html的overflow隐藏!
      

  12.   

    可以用一个iframe,把你的下面的内容用另一个页面写出来,然后再主页面用iframe调用,在类内容页面加一个高度和宽度自适应js方法。
      

  13.   

    楼主的思想是可以的,css没写好而已
      

  14.   

    相应的url页面中放对应的table。。
      

  15.   


    确实,是我CSS没写好。现在表头能固定了,整个table是放在整个div里的,但又出来个新的问题,表体往上滚的时候把表头盖住了。貌似表体是前景,表头是背景,请教高手,怎么解决?