当前位置:首页 > 前端教程

elementui datatable

2026-03-06 06:34:21前端教程

ElementUI DataTable 基础用法

ElementUI 的 DataTable 组件(el-table)是一个功能强大的表格组件,支持排序、筛选、分页等多种功能。以下是一个基本示例:

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' },
        { date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1517 弄' },
        { date: '2016-05-01', name: '王小虎', address: '上海市普陀区金沙江路 1519 弄' }
      ]
    }
  }
}
</script>

排序功能

通过设置 sortable 属性可以启用列的排序功能:

<el-table-column prop="date" label="日期" sortable width="180"></el-table-column>

筛选功能

使用 filtersfilter-method 属性可以实现筛选功能:

<el-table-column prop="name" label="姓名" :filters="[{text: '王小虎', value: '王小虎'}]" :filter-method="filterHandler"></el-table-column>

methods 中添加筛选方法:

elementui datatable

filterHandler(value, row) {
  return row.name === value
}

分页功能

结合 el-pagination 组件实现分页:

<el-pagination
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-sizes="[10, 20, 30, 40]"
  :page-size="10"
  layout="total, sizes, prev, pager, next, jumper"
  :total="400">
</el-pagination>

自定义列模板

使用 scoped slot 可以自定义列的内容:

<el-table-column label="操作">
  <template #default="scope">
    <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
    <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
  </template>
</el-table-column>

多选功能

通过设置 type="selection" 可以启用多选功能:

elementui datatable

<el-table ref="multipleTable" :data="tableData" @selection-change="handleSelectionChange">
  <el-table-column type="selection" width="55"></el-table-column>
</el-table>

树形数据

ElementUI 的表格支持树形数据的展示:

<el-table :data="tableData" row-key="id" border default-expand-all :tree-props="{children: 'children'}">
  <el-table-column prop="date" label="日期" width="180"></el-table-column>
  <el-table-column prop="name" label="姓名" width="180"></el-table-column>
</el-table>

固定列

通过设置 fixed 属性可以固定列:

<el-table-column prop="name" label="姓名" width="180" fixed></el-table-column>

响应式设计

ElementUI 的表格会自动适应容器大小,也可以通过设置 fit 属性让列宽自适应:

<el-table :data="tableData" :fit="true">
  <el-table-column prop="date" label="日期"></el-table-column>
</el-table>

分享给朋友:

相关文章

iview elementui

iview elementui

iview与Element UI对比 iview和Element UI都是基于Vue.js的UI组件库,适用于快速开发企业级中后台产品。以下是两者的主要差异和特点: 设计风格 iview采用圆…

删除elementui

删除elementui

要删除 ElementUI(一个基于 Vue.js 的组件库),可以按照以下方法操作: 卸载 ElementUI 依赖 通过 npm 或 yarn 移除 ElementUI 的依赖包。在项目根目录下…

elementui treegrid

elementui treegrid

ElementUI TreeGrid 实现方法 ElementUI 本身并未直接提供 TreeGrid 组件,但可以通过组合 Tree 和 Table 组件或使用第三方扩展库实现类似功能。以下是几种实…

elementui高级

elementui高级

ElementUI 高级用法与技巧 ElementUI 是基于 Vue.js 的流行组件库,适用于快速开发中后台系统。以下是一些高级用法和优化技巧,帮助提升开发效率和用户体验。 自定义主题与样式覆…

elementui模板

elementui模板

ElementUI 模板使用指南 ElementUI 是一个基于 Vue.js 的组件库,提供丰富的 UI 组件,适用于快速开发中后台管理系统。以下是 ElementUI 模板的常见用法和资源推荐。…

elementui admin

elementui admin

ElementUI Admin 简介 ElementUI Admin 是基于 Vue.js 和 ElementUI 的后台管理系统模板,提供丰富的组件和布局方案,适合快速开发企业级中后台应用。其特点包…