【问题标题】:How to add sticky header to bootstrap-table that has a dropdown filter as the title?如何将粘性标题添加到具有下拉过滤器作为标题的引导表?
【发布时间】:2021-05-04 06:51:21
【问题描述】:

我正在尝试使用 bootstrap-table 并给它一种“Excel 感觉”。可以选择根据里面的值快速过滤列。但我似乎无法让它与粘性标题一起使用,粘性标题有一个引导表插件(data-sticky-header="true")。

我尝试使用 bootstrap 5 下拉菜单创建一些内容并将其附加到标题,效果很好,但是当粘性标题被激活时(将标题滚动到视图之外以便它启动),过滤器和下拉菜单停止工作。

这是example,您可以看到它工作正常,直到您尝试向下滚动。

也许有人有解决方案或选项来使用自定义的粘性标题?

编辑:

随后T J answer 更改溢出,它修复了下拉菜单不会显示在粘性标题上的问题。 出现过滤器无法应用的问题,我通过更改修复了它:

  const checkboxList = document
    .querySelector("#departmentDropdownMenu")
    .querySelectorAll("input");

到:

const dropdownUL = cb.parentElement.parentElement.parentElement;
  const checkboxList = dropdownUL.querySelectorAll("input");

但是现在我遇到的一个问题是,当我滚动时,此过滤器会应用一次,但是如果我再次单击下拉菜单,它会“重置”到它开始时的状态(当我滚动过去它的入口点时) .它更改了过滤器,但在视图中,它似乎每次都“重置”到该位置。如果在我开始滚动时在那里检查了某些内容,则每次下拉菜单再次打开时都会出现检查。 我对此example进行了更新

【问题讨论】:

  • 您的问题是重新打开时复选框保持选中状态吗?是否要重置选择?我真的不明白它是如何工作的......
  • @TJ 我的目标是复选框将保持不变,并且在我重新打开下拉菜单时不会重置。因为现在它们并不能反映过滤器的真实状态。如果我在粘性激活之前选中其中一个复选框,然后向下滚动并取消选中它,将应用过滤器,但如果我关闭下拉菜单并再次打开它,它将显示此框已选中
  • filterAlgorithm: clearFilter ? () => true : (row, filters) => filters[row._department_data.department], 这会影响复选框状态吗?你在哪里找到这些回调的文档,我找不到它
  • @TJ 它来自引导表文档。它不会影响复选框的状态。我应该在那里包含一点评论,这部分的作用是我指定引导表过滤基于的函数,这个过滤器需要返回 true 或 false。因此,如果 clearFilter 为真,则意味着所有表行都应返回真。如果 clearFilter 为 false 则表示它确实需要过滤,则功能是检查该部门的 object/dict 的状态。
  • 某些东西在滚动后重置复选框的状态,我想知道它是什么

标签: javascript html css twitter-bootstrap bootstrap-table


【解决方案1】:

.fix-sticky 类中删除overflow: hidden;

.fix-sticky {
  position: fixed!important;
  /* overflow: hidden; */
  z-index: 100;
}

【讨论】:

  • 您好,感谢您的帮助,但它只解决了我滚动时无法在粘性标题上打开下拉菜单的问题。过滤器仍然没有正确响应,就像它有时没有注册一样。我设法通过将 applyFilter 从使用 querySelector 更改为获取 parentElement x3 来解决此问题。现在过滤器可以工作了,但现在的问题是下拉列表在更改后不会自行更新。它“保存”原始标题上的值,然后显示它们,它现在将更改过滤器,但仍将它们视为已选中。
  • 另外,我是堆栈溢出的新手,这个评论是不是太长了,应该是线程中的新评论?
  • @eliezra236 最佳做法是编辑您的问题并根据 cmets、答案等进行更新,以便新查看您问题的人可以了解所有信息。
  • 谢谢,我已经更新了原来的问题
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
  • 1970-01-01
相关资源
最近更新 更多