【问题标题】:MVCGrid.net Table Fixed HeaderMVCGrid.net 表固定标题
【发布时间】:2018-10-07 22:11:23
【问题描述】:

是否有可能在 MVCGrid 表中使用固定标题?我尝试了许多解决方案,但没有一个效果很好。当表格中有很多列时,用户将这些数据滚动到左侧 - 标题超出了框架。我正在使用StickyTableHeaders jQuery 插件,表结构类似于演示文件夹中的scrollable-div.html。我有一个 div 包含另一个带表格的 div,没有样式,但 overflow:autoheight:600px;

[问题]

编辑:

edit2:

“调试”后

【问题讨论】:

    标签: c# jquery html css twitter-bootstrap


    【解决方案1】:

    您必须显示 2 个相同的表格。它们都属于携带“position:relative;overflow:auto;”的同一个父容器风格。

    一个表格有内容,另一个表格有以下样式:

    position:absolute;
    top:0; left:0;
    height:32px; //this is your row height
    overflow:hidden;
    

    接下来将 onscroll 事件捕获到父容器。将scrollLeft值同步到固定头表的left值。

    document.getElementById('container').onscroll=function(){
      var header=document.getElementById('header_table');
      var parent=document.getElementById('container');
    
      header.style.left=-1*parent.scrollLeft+'px';
    
    }
    

    最后,(这是一个重要的步骤),将父容器放入另一个具有“溢出:隐藏”的容器中。这将剪掉您的标题表,使其保持在“内部”。

    编辑:试试这个 sn-p 看看悬停的标题是否至少被剪掉了。您的屏幕截图显示剪辑不起作用。

    <div style="padding:50px;">
    
    <div style="overflow:hidden;">
      <div style="position:relative;">
        AA<br>BB
        <div style="position:absolute;top:0;left:-5px;">
        XXXX
        </div>
      </div>
    </div>
    
    </div>
    

    您可以看到 XXXX 与 AA 重叠但向左移动。 XXXX 被主容器截断。

    【讨论】:

    • 两个相同的表或只有一个表和第二个只包含标题?
    • 列宽是不可预测的,因为它们被单元格数据拉伸。如果只显示表头,表头列将不会与实际表格对齐。我知道这很重,但没有有效的方法来做到这一点。我有时会用浮动 DIV 模拟表格,以便每列都有固定的宽度。
    • 该死。添加了一些调试代码,看看你是否有一些干扰的样式覆盖
    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 2018-10-23
    相关资源
    最近更新 更多