【发布时间】:2012-12-07 18:02:37
【问题描述】:
我正在研究剑道 UI,我看到了一些非常奇怪的东西。我用Starts with 函数过滤了一个列,并在文本框中输入了一个字符串。但是当我点击Filter 时,请求甚至没有发送到服务器,并且永远显示了一个微调器。我遇到的错误是:
Uncaught TypeError: Cannot call method 'toLowerCase' of null
在给定的列中也有一些空值。我应该将它们的值设置为“”或其他临时值以防止发生此错误吗?这是解决此问题的最佳方法吗?
我说这是剑道 UI 错误是对的吗?如果是这样,这是一个已知问题吗?如果是这样,有人知道什么时候会解决这个问题吗?
编辑: 显然,如果我的数据源在服务器端包含“”而不是空值,那么我不会遇到这个错误,但是始终关注我的数据源以将所有空值都更改为“”是不好的。我知道调用该函数是为了实现不区分大小写,但它有一个错误,使网格的使用有点不舒服。
【问题讨论】:
-
这实际上可能是 DataSource 而不是 Grid 的问题。尝试获取您在网格上使用的数据源,然后在其上调用
.filter(),传入一个表示您在过滤器菜单中选择的过滤器。例如:myDataSource.filter({ field: "Name", operator: "startswith", value: "Bob" }); -
我在客户端过滤中遇到了同样的问题。在我看来,这是一个错误。在服务器端转换为 "" 为我修复了它。
-
是的,这就是解决方案,请参阅接受的答案。
-
常见。真的。这不能被视为解决方案。这是剑道的一个错误。它必须知道如何处理空值。
-
@BhargavRao 我同意你的观点,Cosmin 的答案应该是评论,但我认为由于其内容,它在答案中会更合适,这并没有真正解决问题。