【发布时间】:2018-08-09 21:57:29
【问题描述】:
我在一个页面上有一个b-table 元素,该元素当前显示来自数据库的一堆数据。目前它是分页的,但反馈表明他们宁愿将所有信息显示在一个滚动视图中。我可以这样做,但问题是如果我设置一个包含 div 来滚动整个表格,它也会滚动列标题。我需要找到一种方法,以便能够在保留列标题的同时仅滚动表格主体,而且我更希望能够在元素本身的范围内执行此操作,而不是使用完全独立的标题来装配某些东西和身体在后台有一堆 Javascript 绑定。
在bootstrap-vue table component 的组件引用下,它说有一个名为tbody-class 的属性,它看起来像是为tbody 指定自定义类的一种方法(够疯狂的)。但是,该页面没有说明如何使用它,而且我的实验也没有产生任何结果:
<b-table
tbody-class="my-class" <- Applies prop to table but not to tbody
:tbody-class="my-class" <- Seemingly ignored entirely
>
听起来此类问题已在 this issue thread 上解决,但并没有真正详细说明如何解决。它提到该功能已添加到“下一次更新”中,但是在该评论之后发布的版本的补丁说明和文档都没有提到该添加(除非它意味着我在上一段中提到的属性)。它确实谈到了使用 CSS 选择器以迂回的方式应用样式,但我也无法让它工作。 (在以下示例中,Chrome 检查器中的tbody 没有应用的样式。)
.table.my-table > tbody {
height: 100px;
}
我使用的 Vue 版本是 2.2.6。
【问题讨论】:
-
呃,玩this fiddle,表格会忽略你放在上面的任何CSS。
-
你试过
:tbody-class="'my-class'"或:tbody-class="['my-class']"吗?它期望 tbody-class 为String or Array -
@JacobGoh
:tbody-class="'my-class'"和:tbody-class="['my-class']"似乎都被解释为:tbody-class="my-class"。如果我添加另一个元素,如:tbody-class="['my-class','my-other-class']",那么 that 似乎只是变成了:tbody-class="my-class,my-other-class"。我认为这就是“字符串或数组”的含义。 -
(我无法发布 cmets,所以这是一个答案) 向下滚动比页面长的表格时,固定标题很有用。引导表提供了一种避免完全向下滚动的方法:pagination。这不能回答问题,但它可能会解决问题(它对我有影响)。
-
@fredericf 第二句表示分页不是一个理想的选项。
标签: html css vue.js vuejs2 bootstrap-vue