django_tables2和excelTableFilter覆盖标头雪佛龙

时间:2019-03-29 00:05:22

标签: javascript python jquery django django-tables2

excelTableFilter:https://www.jqueryscript.net/table/Excel-like-Bootstrap-Table-Sorting-Filtering-Plugin.html

django_tables2:https://github.com/jieter/django-tables2

excelTableFilter使HTML表格像excel一样更具搜索/过滤器/可排序性,django_tables2使您可以更好地控制表格的呈现方式。

但是excelTableFilter中的过滤器按钮在移动设备上很大,几乎无法调整大小。我的目标是用excelTableFilter的弹出菜单替换django_tables2的a-z,z-a sortng默认值。

经过2-3小时的挖掘,这是我的解决方案:

(我想获得反馈/减少一些棘手的解决方案)

1 个答案:

答案 0 :(得分:0)

JS:

首先,我将excelTableFilter应用于目标表:

<script>
  $('#workorder_table').excelTableFilter();
</script>

接下来,我删除了所有图标标签:

<script>
  $('.glyphicon').removeClass('glyphicon-arrow-down')
  $('.glyphicon').removeClass('dropdown-filter-icon')
  $('.glyphicon').addClass('glyphicon-filter');
</script>

然后,我编写了一个函数来拦截类'click_redirect'上的所有点击,并将它们重定向到树中的'arrow-down'类元素

<script>
  $(document).on('click', '.click_redirect', function(event) {
    event.stopPropagation();
    $(event.target).parent().find('.arrow-down')[0].click();
  });
</script>

接下来,我将该类应用于所有标头,并用#

替换其排序网址
<script>
  function update_djheaders(param) {
    param.setAttribute("class", "click_redirect");
    param.setAttribute("href", "#");
  };

  $.each($("th.orderable a"), function(i,l) {update_djheaders(l)});
</script>

CSS:

最后,我应用以下CSS隐藏图标

<style>
  .arrow-down {
    display:none !important;
  }
</style>

希望这可以节省您所有的时间!