Vuetify数据表:如何应用标头过滤器功能

问题描述

根据custom filters in v-data-table的Vuetify文档,可以通过在标题项上提供 filter 属性来自定义特定表列的过滤。

在我的应用程序中,我想使用它为单个列自定义过滤。对于所有其他列,我想保留默认的字符串匹配行为。

作为起点(see codepen),我提供了一个自定义过滤器,该过滤器仅返回 true

new Vue({
  el: '#app',vuetify: new Vuetify(),data(){
    return {
      headers: [
        {
          text: 'Car Manufacturers',value: 'car',filter(){ return true }
        },{
          text: 'Country of Origin',value: 'country'
        }
      ],items: [
        { car: 'Honda',country: 'Japan' },{ car: 'Audi',country: 'Germany' },{ car: 'Ford',country: 'USA' }
      ],search: ''
    }
  },})

<div id="app">
  <v-app>
    <v-container>
      <v-text-field
        label="Search"
        v-model="search"
      >
      </v-text-field>
      <v-data-table
        :headers="headers"
        :items="items"
        :search="search"
      >
      </v-data-table>
    </v-container>
  </v-app>
</div>

我现在希望,汽车列上的过滤器与所有行匹配,因此无论我输入什么搜索字符串,都将显示整个表。

我观察到的是,该表仍处于过滤状态,但仅按国家/地区列进行过滤。

相反,当我更改过滤器以返回 false 时,将显示一个空表。然后,我会希望该表仅按国家/地区列进行过滤。

标题过滤器如何应用?或者,更准确地说:

对于每一行,各个列过滤器的结果如何合并以产生整行的过滤器结果?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)