2010-03-25 5 views
3

J'essaye de créer un widget de bouton pour dojox.grid.
Mes problèmes sont:
1) Le bouton n'apparaît que lorsque je double-clique sur la grille.
2) Je n'arrive pas à comprendre comment définir les attributs à l'aide d'un balisage déclaratif. Il semble que la fonction markupFactory en soit responsable, mais elle ne définit pas l'étiquette du widget. Le code suivant montre ce que j'ai jusqu'à présent:Comment créer un nouveau widget pour dojox.grid.cells.dijit?

dojo.require("dojox.grid.DataGrid"); 
dojo.require("dojo.data.ItemFileWriteStore"); 
dojo.require("dijit.form.Button"); 
dojo.require("dojox.grid.cells.dijit"); 
dojo.require("dojo.parser"); 
dojo.declare("dojox.grid.cells.Button", dojox.grid.cells._Widget, { 
    widgetClass: dijit.form.Button, 
    alwaysEditing: true, 
    constructor: function(inCell) 
    { 
    this.inherited(arguments); 
    this.widget = new dijit.form.Button; 
    }, 
    setValue: function(inRowIndex, inValue){ 
    if (this.widget) { 
       this.widget.attr('value', inValue); 
      } 
      else { 
       this.inherited(arguments); 
      } 
    } 
}); 

dojox.grid.cells.Button.markupFactory = function(node, cell) 
{ 
    dojox.grid.cells._Widget.markupFactory(node, cell); 
} 

Répondre

2

Pour 1) Le bouton est uniquement affiché lorsque je double cliquez sur la grille.

Set singleClickEdit: true dans la grille paramètres

this.grid = new dojox.grid.DataGrid({ 
    singleClickEdit: true, 
    structure: view1, 
}, tmp); 
+0

que je pourrais le faire spécifiquement pour le widget bouton? –

Questions connexes