赞
踩
以下是一个基于 Vue 和 Ant Design Vue 的示例,可以动态生成表格的表头和数据:
-
- <template>
- <div>
- <a-button @click="addColumn">添加列</a-button>
- <a-table :columns="columns" :dataSource="dataSource"></a-table>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- columns: [
- {
- title: '姓名',
- dataIndex: 'name',
- key: 'name'
- },
- {
- title: '年龄',
- dataIndex: 'age',
- key: 'age'
- }
- ],
- dataSource: [
- {
- name: '张三',
- age: 25
- },
- {
- name: '李四',
- age: 28
- }
- ]
- }
- },
- methods: {
- addColumn() {
- const newColumn = {
- title: `列 ${this.columns.length + 1}`, // 动态生成列名
- dataIndex: `col_${this.columns.length + 1}`, // 动态生成列的数据键名
- key: `col_${this.columns.length + 1}`
- }
- this.columns.push(newColumn)
- // 随机生成一条数据,对应新增的列
- const newData = {
- name: `用户 ${this.dataSource.length + 1}`,
- age: Math.floor(Math.random() * 20) + 20,
- [`col_${this.columns.length}`]: Math.floor(Math.random() * 100) + 1 // 对应新增的列的值
- }
- this.dataSource.push(newData)
- }
- }
- }
- </script>
这个示例中,通过 addColumn
方法动态添加列,每次添加时生成一个新的列名和列数据键名,并把新列添加到表头中。同时,随机生成一条新数据,对应新增的列的值。通过这种方式实现了动态表头和动态数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。