html的表格中暂无数据,ElementUI行内条件以及添加“暂无数据”提示

本文介绍了一种在Vue中优化表格的方法,包括设置条件样式`column-css`和`borderstripeheight`,监听数据变化以实现动态加载,并在表格无数据时显示自定义提示。通过`@change`、`@clear`事件处理和`v-if`指令实现筛选和清空功能,同时使用`v-model`进行数据绑定。当数据为空时,动态插入无数据提示元素并调整其样式,确保页面呈现良好的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、添加表格内条件

header-cell-class-name="column-css" border stripe height = "552">

@change="changMethod" @clear="searchClick"

v-if="scope.$index === 0" v-model="filters.signalType">

:label="item.label" :value="item.value">

{{ scope.row.signalTypeId_CN }}

{{$t('kpmg.seeDetails')}}

二、添加表格内无数据提示

watch:{

DataSet: function (val) {

let para = document.createElement("p");

let node = document.createTextNode("暂无数据");

let element = document.getElementsByClassName('currentInfo-table')[0].getElementsByClassName('el-table__body-wrapper')[0];

para.appendChild(node);

para.style.height = "100%";

para.className = "noData";

para.style.textAlign = "center";

para.style.paddingTop = document.getElementById('toolboxcard').clientHeight / 2-250 + 'px';

if (val && val.length <= 1) {

if(!document.getElementsByClassName('currentInfo-table')[0].getElementsByClassName('noData')[0]){

element.appendChild(para);

}

} else {

if (document.getElementsByClassName('currentInfo-table')[0].getElementsByClassName('noData')[0]) {

let pare = document.getElementsByClassName('currentInfo-table')[0].getElementsByClassName('noData')[0];

element.removeChild(pare);

}

}

}

}

三、效果图如下:

69e7de799f1cc6b8b28ce1714494d4f4.png

如果在使用 ElementUI行内编辑组件时,绑定的数据没有发生变化,可能是因为你没有正确地绑定数据或者没有正确地触发数据的更新。 首先,确保你正确地绑定了数据。你可以在 `el-table-column` 中使用 `prop` 属性来绑定数据的字段名,然后在行内编辑组件中使用 `v-model` 来绑定数据的值。例如: ``` <template> <el-table :data="tableData"> <el-table-column prop="name" label="Name"> <template slot-scope="{ row }"> <el-input v-model="row.name" /> </template> </el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }, ], }; }, }; </script> ``` 其次,确保你在行内编辑组件中正确地触发了数据的更新。在 ElementUI行内编辑组件中,当用户完成编辑并点击确认按钮时,会触发 `cell-submit` 事件。你可以监听这个事件,在事件处理函数中手动更新数据。例如: ``` <template> <el-table :data="tableData"> <el-table-column prop="name" label="Name"> <template slot-scope="{ row }"> <el-input v-model="row.name" @keyup.enter.native="onCellSubmit(row)" /> </template> </el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }, ], }; }, methods: { onCellSubmit(row) { this.$nextTick(() => { const index = this.tableData.findIndex(item => item.id === row.id); this.tableData.splice(index, 1, row); }); }, }, }; </script> ``` 在这个例子中,我们监听了 `@keyup.enter.native` 事件,在用户按下回车键时触发 `onCellSubmit` 方法。在这个方法中,我们使用 `this.$nextTick` 来等待 DOM 更新完成后再更新数据,然后使用 `Array.prototype.splice` 方法来用新的数据替换旧的数据。这样就可以确保数据的更新和同步了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值