当前位置: 首页 > 知识库问答 >
问题:

javascript - element UI树形图可以加分页嘛?

傅博容
2023-05-11

1683705299146.png
下拉的数据是动态加载的,有时候数据很多,想在下拉里加分页。

共有3个答案

翟新
2023-05-11
<template>
  <div>
    <el-table
      :data="tableData"
      style="width: 100%"
      row-key="id"
      border
      lazy
      :load="load"
      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
    >
      <el-table-column prop="date" label="Date" />
      <el-table-column prop="name" label="Name" />
      <el-table-column prop="address" label="Address" />
    </el-table>

    <el-pagination
      v-if="showPagination"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-size="pageSize"
      layout="prev, pager, next"
      :total="totalItems"
    ></el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        
      ],
      showPagination: false,
      currentPage: 1,
      pageSize: 5,
      totalItems: 0,
      currentExpandedRow: null,
    };
  },
  methods: {
    async loadChildren(parentId, page) {
      // Load children data using parentId and page
      // Replace this with your actual API call
      return new Promise((resolve) => {
        setTimeout(() => {
          const data = [
            // ...your child data
          ];
          resolve({ data, total: 15 });
        }, 500);
      });
    },
    async load(row, treeNode, resolve) {
      if (treeNode.level === 0) {
        const { data, total } = await this.loadChildren(row.id, 1);
        this.totalItems = total;
        this.showPagination = true;
        this.currentExpandedRow = row;
        resolve(data);
      }
    },
    async handleCurrentChange(newPage) {
      if (this.currentExpandedRow) {
        const { data } = await this.loadChildren(this.currentExpandedRow.id, newPage);
        this.$set(this.currentExpandedRow, "children", data);
      }
    },
  },
};
</script>
干稳
2023-05-11

在el-table中设置expand-row-keys属性为一个数组,数组中存放的是需要展开的行的key值。

<el-table :data="tableData" :expand-row-keys="expandKeys">
</el-table>

在分页组件中设置total属性为展开的行数,pageSize属性为每页展示的行数。

<el-pagination :total="expandKeys.length" :page-size="pageSize" />

在Vue实例中定义expandKeys和pageSize变量,并在methods中定义handleSizeChange和handleCurrentChange方法来处理分页变化。

data() {
  return {
    expandKeys: [], // 展开的行的key值
    pageSize: 10 // 每页展示的行数
  }
},
methods: {
  handleSizeChange(val) {
    this.pageSize = val;
  },
  handleCurrentChange(val) {
    // 计算当前页需要展开的行的key值
    const start = (val - 1) * this.pageSize;
    const end = start + this.pageSize;
    this.expandKeys = this.tableData.slice(start, end).map(item => item.key);
  }
}
陶鸿畴
2023-05-11

可以的,和el-table的是一样的,你只要把逻辑弄好就可以了。

 类似资料:
  • pre { white-space: pre-wrap; } 本教程展示如何向带有动态加载特性的树形网格(TreeGrid)添加分页。 创建树形网格(TreeGrid) 启用树形网格(TreeGrid)的分页特性,必须添加 'pagination:true' 属性,这样页面加载时就会向服务器发送 'page' 和 'rows' 参数。     <table title="Products"   

  • 树形图以嵌套矩形显示数据。维度定义树图的结构,维度确定单个正方形的颜色或大小。 正方形很容易可视化,因为正方形颜色的大小和阴影反映了度量的值。使用具有一个或两个度量的一个或多个维度创建树图。 例如,如果要查找每个值的大小,请考虑数据源:Sample-Superstore。以下是创建树形图的以下步骤: 第1步:拖动度量利润(Profit)并放入标记(Marks)窗格下的颜色架。 第2步:再次,将度量

  • 本文向大家介绍elementUI Tree 树形控件的官方使用文档,包括了elementUI Tree 树形控件的官方使用文档的使用技巧和注意事项,需要的朋友参考一下 Tree 树形控件---官方文档地址 用清晰的层级结构展示信息,可展开或折叠。 基础用法 基础的树形结构展示。 可选择 适用于需要选择层级时使用。本例还展示了动态加载节点数据的方法。  懒加载自定义叶子节点 由于在点击节点时才进行该

  • 需要用到elementui的表格,但是表格是树形的,想要做成和 tree 一样,显示链接线。本来想用 tree 组件实现的,但是需要像表格一样有很多列,tree 不好控制宽度。

  • 我想知道是否有一种方法可以使用Quarkus来观察豆子是如何被拉进来的。比如显示bean解析层次结构的树或图。我有几个我认为应该被视为“未使用”的beans,但是它们仍然被拉入(我知道这一点,因为它们由于缺少配置属性而失败)。