找回密码
 立即注册

QQ登录

只需一步,快速开始

Distance

注册会员

4

主题

8

帖子

28

积分

注册会员

积分
28
  • 104

    金币

  • 4

    主题

  • 8

    帖子

Distance
注册会员   /  发表于:2024-7-16 10:59  /   查看:654  /  回复:3
  1. <wj-flex-grid-column min-width="60" width="3*" binding="col1" header="列1" visible="{{ctrl.displaySetting.showCol1}}">
复制代码
将  width  设成 带 * 的 以便列宽可以拉伸至填满grid 剩余空间。

同时提供给用户一个列宽调整按钮,该按钮会对显示列进行 autoFitColumns, autoFit 时跳过最后一个显示列,以便依然能填满 grid 。

_currentFlexgrid.autoSizeColumns(start, colCount - 2);


当按如下步骤操作时,就有问题了:
1. 将所有列显示,  点击列宽调整按钮,此时 列1 、列2、列3 的 width 从星号的变成具体的数字
2. 隐藏 第 四列,此时所有显示列的列宽都变成具体数字,无法自动拉伸来填满 grid

所以有什么 办法可以撤销 autoFitColumn 使其列宽变回原始设置的宽度吗

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-7-16 17:40:51
沙发
wijmo目前没有办法撤销ui操作。而且你所谓的ui操作实际上也只是点击按钮后执行了autoSizeColumns代码,历史的列宽并没有记录,自然无法撤销

如果你希望用户的ui操作都可以撤销,可以尝试使用spreadjs,
spreadjs提供了command机制。把用户的ui操作都封装成了命令或者说事务来执行。可以支持撤销和重做

https://demo.grapecity.com.cn/sp ... ustom-action/purejs

比如你这里的需求,在spreadjs中,可以尝试执行autofitcolumn命令
https://demo.grapecity.com.cn/sp ... mands#autofitcolumn
回复 使用道具 举报
Distance
注册会员   /  发表于:2024-7-17 09:44:55
板凳
哦,那有没有办法能给 指令设某个自定义属性值(如下的 custom-prop),让我能通过访问  wjFlexGrid.columns[0] 的某个属性或方法来获取到该值。
<wj-flex-grid-column width="3*" binding="col1" header="列1"  custom-prop="ctrl.value"></wj-flex-grid-column>
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-7-17 16:31:46
地板
没有明白,你是要获取width  还是其他什么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部