嗨,我是道场新手,遇到了一个简单的问题。我收到错误 尝试使用 id==listGrid 注册小部件,但该 id 已注册。让我与您分享我的代码片段
我有三个单选按钮,单击任何一个单选按钮都会生成网格。我对所有三个单选按钮使用相同的 div。第一次网格将出现在第一个单选按钮中,但第二次我收到上述错误。我通过单击单选按钮来调用此函数
_showList:function()
{
var item = this.gc.getSelectedItem()
var id=item.id;
var cont = 'zone';
var action='getCityListById';
var controller='network';
this.cityGc = new GridViewControl({columns:
[
{action:action, controllerName:controller,parameters: {id:item.id, cont: cont}},
{name:"City Name", field:"name", width: "200px", editable: false}
], diff:220
},this.zoneListGrid);
}
zoneListGrid 是一个 dojo 连接点,对于所有三个单选按钮来说都是相同的。请建议我可以解决的问题。提前致谢
最佳答案
由于每次单击单选按钮都会触发这段代码,因此 dojo 将在第二次单击时尝试创建另一个网格组件。因为该连接点上已经存在一个小部件,所以会引发错误。
要么重新使用已经存在的网格(对 this.cityGc 执行 === null 检查),要么首先销毁现有网格(this.cityGc.destroy())。
关于javascript - DOJO 错误 ID 已注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20651158/