1

我正在使用声明性方法(在 HTML 中)使用 dojo 数据网格和 JsonRestStore 的旧代码库。我现在正在尝试调整它以使用更新的 dojo.store.JsonRest 。

当我在 HTML 中声明 JsonRest 和 ObjectStore 时,它​​可以工作。

我想使用 json.store.Cache 作为我的存储,并使用 dojo.store.JsonRest 和 dojo.store.Memory 支持它。json.store.Cache 的构造函数有两个参数。

a)是否有可能以 HTML 声明式样式定义构造函数参数?

我不想接触 Datagrid 的(声明性)代码,所以我尝试在 dojo.addOnLoad 中设置 Grid 的存储。我在 Firebug 中为 dojo.js 行 402 收到一个奇怪的错误,这实际上是一条评论:

// 5. Evaluated:模块是通过define定义的,加载器已经评估了工厂并计算了一个结果。

我的猜测是该错误与 dojo.js 根本无关,并且异常实际上发生在某个地方的闭包中(我想我以前见过这个)。

b)是否可以以这种方式混合和匹配声明式和程序式风格?如果是,我应该在什么事件上设置网格的存储?

4

1 回答 1

2

我自己回答这个问题,因为我后来想通了。混合和匹配声明式和程序式风格似乎没有问题。

我从使用 dojo.addOnLoad 更改为 dojo.ready ,但我认为这不是问题所在。

我试图在对datagrid.setQuery 的调用中设置datagrid 的查询,然后使用datagrid.setStore 设置存储。无论我尝试哪种顺序(先查询或先存储),它都不起作用。事实证明,两者都必须在调用 setStore 时一起设置。该方法接受查询作为其第二个参数。这解决了我的问题。

于 2012-01-25T14:47:52.250 回答