Идентификатор ошибки DOJO уже зарегистрирован

Привет, я новичок в додзё и застрял в простой проблеме. Я получаю сообщение об ошибке Пытался зарегистрировать виджет с id==listGrid, но этот идентификатор уже зарегистрирован. Позвольте мне поделиться с вами частью моего кода.

У меня есть три переключателя, и нажатие на любой из переключателей приведет к сетке. Я использую один и тот же 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 — это точка подключения додзё, одинаковая для всех трех переключателей. пожалуйста, предложите что-нибудь, через что я могу работать. заранее спасибо


person Saurabh    schedule 18.12.2013    source источник


Ответы (1)


Поскольку каждый щелчок по переключателю будет запускать этот фрагмент кода, dojo попытается создать другой компонент сетки при втором щелчке. Поскольку в этой точке подключения уже есть виджет, выдается ошибка.

Либо вы повторно используете уже существующую сетку (выполните проверку === null для this.cityGc), либо сначала уничтожите существующую сетку (this.cityGc.destroy()).

person PaulR    schedule 18.12.2013