KevinChen 发表于 2020-8-4 12:19:41

【无法删除单元格的值】FlexGrid无法删除单元格的值

本帖最后由 KevinChen 于 2020-8-4 12:19 编辑

这篇文章的标题看起来像是一个很简单的问题,
然而就是这个问题,困扰了很多新入坑的小伙伴,
原因是大家用FlexGrid这种“传统的”grid表格时,会不自觉带入Excel的操作习惯
—— 希望单元格的数据完全按照自己希望的类型、格式、是否为空等方式来设置。

既然是传统的二维grid数据,每一列代表一个key字段,而数据类型是字段的天然属性,所以默认表格对某一列的数据类型的要求是固定的,
比如,当数据源中某列数据都是date日期类型时,默认这整列的数据都应该是date类型。
相当于这里自动加入了“数据类型验证”。

那么能否改变这种限制呢?其实很简单,在配置column时,加入isRequired属性,
并设置为false即可:
https://demo.grapecity.com.cn/wijmo/api/classes/wijmo_grid.column.html#isrequired

另外,在使用代码设置grid某个单元格的值时,可以采用setCellData方法实现,
这里又是一个容易造成误解的地方,当setCellData传入的value与单元格数据类型不同时,
默认会执行失败,并返回false。我们看到的效果就是执行了代码,但数据没进去。

如果设置了isRequired:false,就不会出现这个问题,除此之外,这个方法其实还有两个参数:
https://demo.grapecity.com.cn/wijmo/api/classes/wijmo_grid.flexgrid.html#setcelldata

[*]可选 coerce: booleanWhether to change the value automatically to match the column's data type.

[*]可选 invalidate: booleanWhether to invalidate the grid to show the change.



最后一个参数,就是控制是否“忽视”单元格的校验机制的,这里我们就可以传true,来强制
我们设置的值生效。
页: [1]
查看完整版本: 【无法删除单元格的值】FlexGrid无法删除单元格的值