2010-02-08 14 views
9

Actualmente estoy desarrollando mi página web personal
y parte de mi sitio tengo una visión sesgada pr evitar la duplicación de código ...
y esto ver Tengo un dojox.grid.datagrid ...
Puedo llamar a esta vista dos veces en la misma página (ruban.phtml) el problema es que hago clic en el botón 1 que es el atractivo de esta vista (vista parcial) y luego hago clic en el segundo botón que es el atractivo de esta vista Tengo un error:
Error: Intenté registrar el widget con id == grilla pero esa identificación ya está registradade error: se ha intentado registrar artilugio con el ID == grid1but ese id ya está registrado

y para hacer frente a este problema, eliminé el jsId caminar por la red y he declarado una variable global se inicializa cuando se llama a la vista:

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

intenté pero siempre con el mismo problema:

...... onDownloadEnd:function() {

  // Update the id of the grid 
      var nodeGrid = dojo.byId("ancienIdGrid"); 
      nodeGrid.setAttribute("id", "newIdGrid");   
      varGlobalPourId = dijit.getEnclosingWidget(nodeGrid); 

}....

gracias por ayudarme

Respuesta

5

Dijit mantiene un hash de Identificación cadenas a los widgets en dijit.registry (ver dijit/_base/manager.js) Actualizar el ID en el DOM no afectará a esa tabla, así que podría ver cómo fallaría si intentas crear un widget con el mismo ID dos veces. ¿Qué tal si solo generas una identificación única para cada grilla, si necesitas una identificación?

4
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(); 
    } 
}); 
+0

https://bugs.dojotoolkit.org/ticket/5438 – JenonD

Cuestiones relacionadas