element ui编辑某一行的内容
时间: 2023-09-05 21:06:55 浏览: 93
要编辑 Element UI 表格中某一行的内容,可以通过以下步骤实现:
1. 给表格添加 ref 属性,以便在代码中获取表格实例。
```html
<el-table ref="table" :data="tableData">
<!-- 表格列定义 -->
</el-table>
```
2. 通过 this.$refs.table.setCurrentRow(row) 方法设置当前编辑的行。其中,row 是要编辑的行数据。
```js
// 在某个事件处理函数中获取表格实例并设置当前编辑的行
const table = this.$refs.table
table.setCurrentRow(row)
```
3. 在表格列定义中使用自定义模板,以便在该行处展示可编辑的表单控件。例如,在第二列定义一个输入框(Input)和保存按钮(Button):
```html
<el-table-column label="姓名">
<template slot-scope="scope">
<el-input v-model="scope.row.name" :disabled="!scope.row.editing"></el-input>
<el-button v-if="scope.row.editing" type="primary" size="mini" @click="save(scope.row)">保存</el-button>
</template>
</el-table-column>
```
4. 在点击保存按钮时修改表格数据,并将当前行的 editing 属性设为 false,以退出编辑状态。
```js
// 在 methods 中定义保存方法
save(row) {
// 保存数据...
row.editing = false
}
```
完整的代码示例:
```html
<template>
<div>
<el-table ref="table" :data="tableData">
<el-table-column label="ID" prop="id"></el-table-column>
<el-table-column label="姓名">
<template slot-scope="scope">
<el-input v-model="scope.row.name" :disabled="!scope.row.editing"></el-input>
<el-button v-if="scope.row.editing" type="primary" size="mini" @click="save(scope.row)">保存</el-button>
</template>
</el-table-column>
<el-table-column label="年龄" prop="age"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="edit(scope.row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, name: '张三', age: 20, editing: false },
{ id: 2, name: '李四', age: 22, editing: false },
{ id: 3, name: '王五', age: 25, editing: false }
]
}
},
methods: {
edit(row) {
const table = this.$refs.table
// 设置当前编辑的行
table.setCurrentRow(row)
// 进入编辑状态
row.editing = true
},
save(row) {
// 保存数据...
row.editing = false
}
}
}
</script>
```
阅读全文