如何在 Element UI 中的数据表中使用分页?
How to use pagination in a datatable in Element UI?
我只是想知道 el-table 组件中没有用于分页的内置功能。
有一个单独的 pagination 组件,但没有说明如何将它与 el-table 结合使用。我想不通,我很困惑。
谁能给出一个简短明了的例子,说明如何组合它们?
我创建了一个小示例,在这种情况下,所有数据都已经在前端,但在实际情况下,您可能会调用某些后端服务,所以如果您想应用类似排序你必须自己在后端服务中完成
祝你好运。
HTML:
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.13.0/lib/index.js"></script>
<div id="app">
<template>
<el-table :data="pagedTableData" style="width: 100%">
<el-table-column prop="date" label="Date" width="180"></el-table-column>
<el-table-column prop="name" label="Name" width="180"></el-table-column>
<el-table-column prop="address" label="Address"></el-table-column>
</el-table>
<el-pagination layout="prev, pager, next" :total="this.tableData.length" @current-change="setPage">
</el-pagination>
</template>
</div>
JS:
var Main = {
created() {
for (let i = 0; i < 100; i++) {
this.tableData.push({ date: '2016-05-03', name: 'Tom', address: `No. ${i}, Grove St, Los Angeles`
})
}
},
data() {
return {
tableData: [],
page: 1,
pageSize: 10
}
},
computed: {
pagedTableData() {
return this.tableData.slice(this.pageSize * this.page - this.pageSize, this.pageSize * this.page)
}
},
methods : {
setPage (val) {
this.page = val
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
也可以在 Codepen
我只是想知道 el-table 组件中没有用于分页的内置功能。
有一个单独的 pagination 组件,但没有说明如何将它与 el-table 结合使用。我想不通,我很困惑。
谁能给出一个简短明了的例子,说明如何组合它们?
我创建了一个小示例,在这种情况下,所有数据都已经在前端,但在实际情况下,您可能会调用某些后端服务,所以如果您想应用类似排序你必须自己在后端服务中完成
祝你好运。
HTML:
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.13.0/lib/index.js"></script>
<div id="app">
<template>
<el-table :data="pagedTableData" style="width: 100%">
<el-table-column prop="date" label="Date" width="180"></el-table-column>
<el-table-column prop="name" label="Name" width="180"></el-table-column>
<el-table-column prop="address" label="Address"></el-table-column>
</el-table>
<el-pagination layout="prev, pager, next" :total="this.tableData.length" @current-change="setPage">
</el-pagination>
</template>
</div>
JS:
var Main = {
created() {
for (let i = 0; i < 100; i++) {
this.tableData.push({ date: '2016-05-03', name: 'Tom', address: `No. ${i}, Grove St, Los Angeles`
})
}
},
data() {
return {
tableData: [],
page: 1,
pageSize: 10
}
},
computed: {
pagedTableData() {
return this.tableData.slice(this.pageSize * this.page - this.pageSize, this.pageSize * this.page)
}
},
methods : {
setPage (val) {
this.page = val
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
也可以在 Codepen