【发布时间】:2013-01-12 07:32:37
【问题描述】:
我是 Web UI、Dojo、Java 等的新手。如果您指的是任何高级主题,请提供一些阅读参考。会有帮助的。
上下文:
我使用 JsonStore 进行了 Gridx 设计,它采用目标 + id 作为 URL。使用固定的“id”网格可以很好地加载。
我有动态树。它在延迟加载等方面工作正常。
目标:
基于 Tree 中给定节点的单击(或 dblclick)事件,我必须为 Gridx 加载数据。因此,如果单击树节点 "id":7,则应获取 JsonStore: /target/7 并将其加载到 Gridx 中。
问题:
正如您所猜想的,在开始时没有有效的“id”属性来填写 JsonStore。在树的单击事件处理程序中,我将在用户单击时获取此值。因此,不能在“就绪”状态下调用 gridx.startup()。尽管我已将小部件“放置”在“就绪”状态。
因此,我有以下 sn-p 来处理,
// this function is called from tree event handler
function LatestTabGridxLoad( id ) {
console.log( "ID %s fetched.", id );
LatestTabGridxStore.idProperty = id;
LatestTabGridx.startup();
LatestTabGridx.body.refresh();
}
ready(function()
{
TabLatestAssetTree.startup();
LatestTabGridx.placeAt( "ReportMiddleTabLatestCenterContainer" );
}
现在,问题是,在第一次加载时,JsonStore GET 仅使用 /target/ 触发,没有任何“id”,没有任何用户点击。因此,服务器以 405 响应。随后,当用户单击时,同样没有“id”的 HTTP GET 再次导致 HTTP 405。我无法以某种方式将“id”提供给 GET URL。我检查了 JSON,它的形状很完美,因为它可以在独立表中工作,它是声明式(ly)定义的。
请建议我通过其“id”将 TREE 节点链接到 Gridx 的方法。还建议,如果我采取的方法是解决这个问题的正确方法。
【问题讨论】:
标签: datagrid dojo jsonstore dijit.tree dojo.gridx