zoukankan      html  css  js  c++  java
  • Ant Design Vue使用动态表头的表格

    使用Ant Design Vue框架的Table组件时,我们通过配置Table组件的colums属性来生成表头

    <a-table :columns="columns" :data-source="data"></a-table>
    const columns = [
      {
        dataIndex: 'name',
        key: 'name',
        slots: { title: 'customTitle' },
        scopedSlots: { customRender: 'name' },
      },
      {
        title: 'Age',
        dataIndex: 'age',
        key: 'age',
      },
      {
        title: 'Address',
        dataIndex: 'address',
        key: 'address',
      },
      {
        title: 'Tags',
        key: 'tags',
        dataIndex: 'tags',
        scopedSlots: { customRender: 'tags' },
      },
      {
        title: 'Action',
        key: 'action',
        scopedSlots: { customRender: 'action' },
      },
    ];

    但是,当我们做智能表单项目的需求是,我们要根据数据库储存的JSON对象动态的生成表头。

    当时脑子里的第一个想法是,在拿到后台传过来的JSON数据之后在JS中根据JSON对象创建一个新的colums,然后生成动态的表头。这样做肯定是没有问题的,代码省略。

    但是后来采取了循环创建 a-table-column 的方式来实现动态表头。个人感觉这样更符合逻辑一些

    <a-table>         
    <!-- 定制表格表头 --> <template v-for="(item, itemIndex) in widgetData.originalLine.fieldList"> <a-table-column v-if="hasGrid(item.id)" :title="item.name" :key="item.id" :width="widthCal(item.id)" :align="alignment(item.id)" > <template slot-scope="text, record"> <div v-if="!item.tableFixedColumnsDisplay"> {{ getTableContent(record,item.id) }} </div> </template> </a-table-column> </template>
    <a-table>         

    这样就搞定了!

  • 相关阅读:
    java占位符应用
    【QuickHit项目实例】
    【那些年关于java多态应用】
    【那些年关于MyEclipse的快捷键大全】
    那些年【深入.NET平台和C#编程】
    关于《网络电视精灵》项目
    VS2013常用快捷键
    关于C#的继承结论
    关于【项目经理评分】项目的代码分析
    序列化和发序列化
  • 原文地址:https://www.cnblogs.com/jinyu-cnblogs/p/13366895.html
Copyright © 2011-2022 走看看