首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在默认情况下对v-data-table排序?

如何在默认情况下对v-data-table排序?
EN

Stack Overflow用户
提问于 2020-03-07 06:05:24
回答 2查看 15.1K关注 0票数 6

我似乎不能让默认排序起作用。对于documentation中的参数custom-sort,我所能看到的就是它是一个“用于对项进行排序的函数”,但我不知道是以什么方式实现的。我可以想象很多人。是否调用它进行初始排序?它似乎返回一个条目列表,但是当我尝试创建一个条目列表时,我得到一个错误,显示为this.customSort is not a function

代码语言:javascript
复制
<template>
  <v-data-table
    :headers="headers"
    :items="reports"
    hide-default-footer>
    <template v-slot:item.requested="{ item }">
      {{ datetimeToDistance(item.requested) }}
    </template>
  </v-data-table>
</template>
<script>
export default {
name: 'Reports',
data () {
    return {
        customSort: (items,index,isDesc) => console.log("never called"),
        reports: [{name:"a",requested:"2020-01-01T00:00:00Z"}.{name:"b",requested:"2020-02-02T00:00:00"}],
    }
},
computed: {
    headers () {
        return [
            {text: "Name", value: "name"},
            {text: "Report Type", value: "report_type"},
            {text: "Requested", value: "requested", sort: (a,b) => a.localeCompare(b) },
            ];
    },
}
}
</script>

如果你点击链接,我的排序就会起作用。我在这里真正想说的是:“当页面第一次加载时,按照‘请求’排序,就像用户最初点击了它一样。然后让他们改变排序。”

注意:datetimeToDistance只是一个调用库的函数,并不是很重要。只是该列的输出并不直接在对象中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-28 11:41:21

sort-bysort-desc属性与.sync选项一起使用,并在数据中设置所需的值。

代码语言:javascript
复制
<template>
  <div>
    <v-data-table
      :sort-by.sync="sortBy"
      :sort-desc.sync="sortDesc"
    ></v-data-table>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        sortBy: 'fat',
        sortDesc: false,
    },
  }
</script>

https://vuetifyjs.com/en/components/data-tables/#external-sorting

票数 10
EN

Stack Overflow用户

发布于 2020-03-07 07:27:56

我通常在分页指令中对v-datatable排序,如下所示:

代码语言:javascript
复制
<template>
    <v-data-table :headers="headers" :items="reports" :pagination.sync="pagination" hide-default-footer>
        <template v-slot:item.requested="{ item }">
            {{ datetimeToDistance(item.requested) }}
        </template>
    </v-data-table>
</template>
<script>
    export default {
        name: 'Reports',
        data() {
            return {
                customSort: (items, index, isDesc) => console.log("never called"),
                reports: [{ name: "a", requested: "2020-01-01T00:00:00Z" }.{ name: "b", requested: "2020-02-02T00:00:00" }],
                pagination: { sortBy: 'requested', descending: true, rowsPerPage: 10 }
            }
        },
        computed: {
            headers() {
                return [
                    { text: "Name", value: "name" },
                    { text: "Report Type", value: "report_type" },
                    { text: "Requested", value: "requested", sort: (a, b) => a.localeCompare(b) },
                ];
            },
        }
    }
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60572211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档