2010-12-07 6 views
1

qui sait comment créer une cellule personnalisée dojox.grid.DataGrid? Je pourrais bien sûr utiliser les propriétés get et formatter de la mise en page, mais ce n'est pas vraiment une solution réutilisable!dojox.grid.DataGrid Cellule personnalisée?

Merci pour votre participation!

heinrich

Répondre

1

Vous pouvez essayer une façon indirecte d'ajouter un widget dojo à une cellule de grille

1) Set escapeHTMLInData-false pour la dojox.grid.DataGrid

2) Ensuite, dans la fonction get/formatter essayer quelque chose comme

function formatterFn() { 
    var buttonToReturn = dijit.form.Button({ 
     /* Button attributes */ 
    } 
    var div = document.createElement("div"); 
    div.appendChild(buttonToReturn.domNode); 
    return div.innerHTML; 
    // You can leave the div orphan 
} 

Vous pouvez retourner conditionnellement différents widgets pour répondre à vos besoins

Hope it helps!

+1

Depuis 1.4, vous n'avez plus besoin de escapeHTMLInData. Si le formateur renvoie un widget, il est analysé. – Erik

2

Qu'entendez-vous par cellule personnalisée?

Voulez-vous utiliser la case à cocher ou la zone de texte au lieu du texte? ou

Voulez-vous afficher des images au lieu du texte?

Dans le premier cas

  • donner 'modifiable' = "true"
  • set 'singleClickEdit' = "true" et
  • ensemble variable type de cellule. Vous pouvez étendre la classe d'éditeur par défaut et créer votre propre classe d'éditeur.

Dans le second cas, vous pouvez utiliser la fonction de formatage.

Il est préférable d'utiliser les fonctions et les classes existantes. L'extension rendra la grille plus lente.

+0

Je voudrais créer une cellule qui effectue un formatage personnalisé des valeurs, par ex. une cellule qui affiche un bouton! – Erik

+0

Vérifiez le fichier dojo-release-1.5.0-src/dojox/grid/cells/dijit.js. Cela contient certains éditeurs si aucun de ceux-ci ne correspond à votre exigence. N'oubliez pas d'écrire la fonction 'markupFactory'. Sans cette fonction, cela ne fonctionnera pas. – Manu

+0

Je vais vérifier cela, merci! – Erik

Questions connexes