描述错误
Datagrid:Palaceholder 在空白字段中单击后设置为 NaN.000
再现
重现行为的步骤:
预期行为
占位符应显示
版本
4.530 - 测试版 - IDS
截图
平台
所有主要浏览器和操作系统
附加上下文
不适用
@Jah25也许应该将您指向正确的位置,因为 datagrid 有点疯狂。 但我认为问题在于我们正在使用:
格式化程序:占位符和编辑器:在此处
https://github.com/infor-design/enterprise/blob/main/app/views/components/datagrid/example-placeholder.html#L71
由于这是第一个问题,我认为开始可能有点复杂(对不起我)。 但我可以在https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10434 中看到一个修复
coerveValue 函数试图将数据放回源格式 fx(在本例中为数字)。 我认为在这里排除 NaN 是安全的。 所以也许 NaN 它只是显示空白
// coerced value may be coerced to empty string, null, or 0
if (coercedVal === undefined && Number.isNaN(value)) {
coercedVal = value;
}
沿着这些路线的东西。 但只是一个提示。 我注意到这个例子也有点奇怪,所以也许我们只是快速解决这个问题并继续前进。
HTH
@tmcconechy嘿蒂姆我刚看到这个。 是的,我花了一点时间才找到它,但我也发现强制是问题所在,尽管我在这里遇到了强制检查旧值以确定它也应该强制的数据类型
https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10372
我的修复将是这样的
let isWord = /[A-Za-z!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]]/
...
else if (typeof oldVal === 'number' && value && isWord.test(value) ) {
newVal = Locale.parseNumber(value); // remove thousands sep , keep a number a number
}
我不认为它是完美的保护,但它涵盖了更多的边缘情况,您想继续进行更改还是示例修复?
@Jah25听起来应该可行。 试一试吧