"自定义显示列"的按钮实现

[复制链接]
查看: 2727   回复: 6     已解决

1

主题

2

回帖

2万

积分

论坛元老

Rank: 8Rank: 8

积分
23651
2023-4-6 15:01:49   显示全部楼层   阅读模式  
数据表格的列有些多,我创建了一个"自定义显示列"的按钮,请问该如何实现?




admin已获得悬赏 200 威望

最佳答案

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册账号

x
回复

使用道具 举报

7

主题

237

回帖

27万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
273291
2023-4-6 15:17:25   显示全部楼层  
可以实现:
1. 弹窗里放一个checkbox多选组件,在弹窗Opened事件中获取数据表格的全部列,做checkbox组件的显示初始化;
2. 获取数据表格的全部列调用getTableColumns()方法;
3. 动态设置数据表格的显示列调用setTableColumns()方法,具体方法的使用查一下VForm文档。

回复

使用道具 举报

1

主题

2

回帖

2万

积分

论坛元老

Rank: 8Rank: 8

积分
23651
StaceyChen (楼主)
2023-4-10 13:08:37   显示全部楼层  
我的弹出窗口的opened事件响应函数体是这样的:
// extraData是this.getWidgetRef('datatable_cfg')
const dt_widget = this.extraData
const columns = dt_widget.getTableColumns()
this.getWidgetRef('checkbox_custom_cols').loadOptions(columns)

这样运行后,默认所有选项都没有被选中。勾选其中一个选项,所有选项都会被同时勾选上。请问应该怎么解决?
回复

使用道具 举报

7

主题

237

回帖

27万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
273291
2023-4-10 13:28:04   显示全部楼层  
StaceyChen 发表于 2023-4-10 13:08
我的弹出窗口的opened事件响应函数体是这样的:
// extraData是this.getWidgetRef('datatable_cfg')
const  ...

这么做,肯定有问题,思路不对。
回复

使用道具 举报

7

主题

237

回帖

27万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
273291
2023-4-10 13:34:27   显示全部楼层  
  1. const columns = dt_widget.getTableColumns()
  2. let columnOptionItems = []
  3. columns.map(col => {
  4.   columnOptionItems.push({
  5.     label: col.label,
  6.     value: col.prop
  7.   })
  8. })
  9. this.getWidgetRef('checkbox_custom_cols').loadOptions(columnOptionItems)
复制代码



回复

使用道具 举报

1

主题

2

回帖

2万

积分

论坛元老

Rank: 8Rank: 8

积分
23651
StaceyChen (楼主)
2023-4-10 16:26:02   显示全部楼层  
我想实现它加载选项后自动选中某些选项,您告诉我使用setValue()。我多次尝试后没有效果,就打印了this.getWidgetRef('checkbox_custom_cols').getValue(),是[{0: 5}]。请指教如何实现选项自动选中
回复

使用道具 举报

7

主题

237

回帖

27万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
273291
2023-4-10 17:11:45   显示全部楼层  
StaceyChen 发表于 2023-4-10 16:26
我想实现它加载选项后自动选中某些选项,您告诉我使用setValue()。我多次尝试后没有效果,就打印了this.get ...

应该这样赋值:
setValue([1,2,3,4,5])

上面1、2、3这些是举例,实际上应该传每个选项的value值。
回复

使用道具 举报

您需要登录后才可以回帖   登录 注册账号

高级模式