ST 表格之下拉框

本文探讨了如何在HTML中使用Angular与TypeScript实现动态数据绑定,包括使用自定义变量、下拉框绑定及自定义模板渲染。通过具体代码示例,展示了如何在表格中动态显示数据,以及如何利用TypeScript处理和展示复杂数据结构。

html 中增加ng模板 以 st-fow命名以备绑定

let-index=“index” 是循环中的自定义变量 ,从0开始计数,正好用于取出绑定的数据和下拉框 绑定

 <st #st [data]="noticedata" [columns]="columns"   (change)="change($event)" >
            <ng-template  st-row="custom" let-item let-index="index" let-column="column">
              <nz-select disabled   nz-input [ngModel]="noticedata[index].userId" nzPlaceHolder="选择用户" name="userId" >
                <nz-option *ngFor="let data of TeacherData" nzLabel="{{data.userName}}" [nzValue]="data.userId"></nz-option>
              </nz-select>
            </ng-template>
          </st>

ts中通过render绑定

reder :自定html输入到这个列表中

  columns: STColumn[] = [
    { title: 'ID', index: 'noticeId' },
    { title: '标题', index: 'noticeTitle' },
 //   { title: '内容', index: 'noticeInfo.substr(0,100)' },
    { title: '类型', index: 'noticeType' },
    { title: '发布状态', index: 'status' },
    { title: '发布用户', index: 'userId',render:'custom' },
    {
      title: '内容',
      buttons: [
        {
      //    text: ' 点击查看',
          format: item => item.noticeInfo ? '点击查看' : '无内容',
          click: (item: any) => item.noticeInfo ? this.view(item.noticeInfo) : '',
        }],
    },
    { title: '创建时间', index: 'createTime', type: 'date' },
    {
      title: '操作',
      width: '180px',
      buttons: [
        {
          text: '编辑',
          type: 'modal',
          component: NoticeDetailComponent,
          paramName: 'i',
          //     click: item => this.router.navigateByUrl(`coursesDetail?courseId=${item.materialId}`),
          click: () => this.st.reload(),
        },
        { text: '删除', click: (item: any) => this.del(item.noticeId) },
      ],
    },
  ];

  • 数据取出并进行封装的通道方法
 this.noticedata = Array(res.data.length).fill({}).map((item: any, i: number) => {
        return {
          ID: [i + 1],
          noticeId: res.data[i].noticeId,
          noticeTitle: res.data[i].noticeTitle,
          noticeInfo: res.data[i].noticeInfo,
          noticeType: res.data[i].noticeType,
          status: res.data[i].status,
          userId: res.data[i].userId,
          projectId: res.data[i].projectId,
          createTime: res.data[i].createTime,
          updateTime: res.data[i].updateTime,
        };
      });
### 实现带边表格 在 Vue3 和 Element Plus 中实现带有边表格,可以通过 `el-table` 组件及其属性轻松完成。通过设置特定的属性来控制表格是否有边以及内部单元格之间的边界。 #### 设置表格 要使整个表格具有外部边并让其内的每一行和列之间也存在分隔线,可以在 `<el-table>` 标签上添加 `border="true"` 属性[^1]: ```html <template> <div style="margin-top: 20px;"> <!-- 带有边表格 --> <el-table :data="tableData" border stripe 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> </div> </template> <script setup> import { ref } from 'vue' const tableData = ref([ { date: '2016-05-03', name: 'Tom', address: 'No. 189, Grove St, Los Angeles' }, { date: '2016-05-02', name: 'John', address: 'No. Middle Blvd, San Francisco' } ]) </script> ``` 上述代码展示了如何创建一个简单的表格,并为其应用了边样式。这里还使用了 `stripe` 属性给奇偶行加上不同的背景颜色以便于区分各行数据。 #### 自定义样式 如果希望进一步定制化表格外观,则可以直接利用 CSS 来调整样式。例如改变边的颜色或宽度等特性。需要注意的是,在某些情况下可能需要增加更具体的 CSS 选择器以确保样式能够正确应用于目标元素之上。 ```css /* 修改默认边 */ .el-table--border, .el-table--group { border-color: #dfe4ed; } /* 修改水平方向上的分割线 */ .el-table td, .el-table th.is-leaf { border-bottom: none !important; /* 移除底部线条 */ border-right: solid 1px #dfe4ed !important; /* 更改右侧线条 */ } ``` 以上CSS片段说明了怎样更改默认的边颜色为浅灰色(`#dfe4ed`),并通过移除原有的下划线只保留右边界的显示方式来自定义表格布局。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值