我正在研究一个使用dojo datagrid和JsonRestStore的旧代码库,使用声明式方法(在HTML中)。我现在正在尝试调整它以使用更新的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.评估:模块是通过define定义的,加载器已经评估了工厂并计算了结果。
我的猜测是错误与dojo.js完全没有关系,并且异常实际发生在某个地方的封闭中(我想我以前见过这个)。
b)是否可以通过这种方式混合和匹配声明式和程序式?如果是,我应该在什么事件上设置网格的商店?
答案 0 :(得分:2)
我自己回答这个问题,因为我后来才知道。混合和匹配声明性和程序化风格似乎没有问题。
我从使用dojo.addOnLoad改为dojo.ready,但我认为这不是问题。
我试图在调用datagrid.setQuery时设置datagrid的查询,然后使用datagrid.setStore设置存储。无论我尝试哪种顺序(首先查询或先存储),它都无法工作。 结果两者都必须在调用setStore时设置。该方法接受查询作为其第二个参数。 这解决了我的问题。