DOJO错误ID已经注册

时间:2013-12-18 06:34:05

标签: javascript dojo dojox.grid.datagrid

嗨,我是dojo的新蜜蜂并陷入了一个简单的问题。我收到了一个错误  尝试使用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附加点,对于所有三个单选按钮都是相同的。请提出一些我可以解决的问题。提前致谢

1 个答案:

答案 0 :(得分:2)

由于每次单击单选按钮都会触发这段代码,dojo将尝试在第二次单击时创建另一个网格组件。因为附加点上已存在一个小部件,所以会抛出错误。

要么重新使用已存在的网格(对this.cityGc执行=== null检查),要么首先销毁现有网格(this.cityGc.destroy())。