Ошибка: попытался зарегистрировать виджет с id == grid1, но этот идентификатор уже зарегистрирован - PullRequest
9 голосов
/ 08 февраля 2010

Я сейчас занимаюсь разработкой своего личного сайта
и часть моего сайта у меня есть предвзятое мнение pr, чтобы избежать дублирования кода ...
и это мнение у меня есть dojox.grid.datagrid ...
Я могу вызвать это представление дважды на одной странице (ruban.phtml) проблема в том, что я нажимаю 1 кнопку, которая является привлекательной для этого представления (частичное представление), а затем я нажимаю 2-ю кнопку, которая является привлекательной для этого представления. Ошибка: попытался зарегистрировать виджет с идентификатором == grid, но этот идентификатор уже зарегистрирован

и для решения этой проблемы я удалил jsId, пройдя по сетке, и объявил, что глобальная переменная инициализируется при вызове представления:

grid = dijit.getEnclosingWidget(dojo.byId("gridId1");<br> // soit<br> grid = dijit.getEnclosingWidget(dojo.byId("gridId2");

Я пытался, но у меня всегда одна и та же проблема:

...... onDownloadEnd:function() {</p> <pre><code> // Update the id of the grid var nodeGrid = dojo.byId("ancienIdGrid"); nodeGrid.setAttribute("id", "newIdGrid"); varGlobalPourId = dijit.getEnclosingWidget(nodeGrid);

} ....

спасибо, что помогли мне

Ответы [ 2 ]

5 голосов
/ 10 февраля 2010

Dijit поддерживает хеш строк идентификаторов для виджетов в dijit.registry (см. Dijit / _base / manager.js). Обновление идентификатора в DOM не повлияет на эту таблицу, поэтому я мог видеть, как он потерпит неудачу, если вы попытаетесь создать виджет с одинаковым идентификатором дважды. Как насчет генерации уникального идентификатора для каждой сетки, если вам вообще нужен идентификатор?

4 голосов
/ 16 августа 2011
destroy all registered id forcefully with this snippet than you go on your way!!

var ids = ["cp1","cp2","cp3"];
dijit.registry.forEach(function(w){ 
   if(dojo.indexOf(ids,id)){
        w.destroyRecursive();
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...