La nostra azienda è passata da dojox/DataGrid
a dgrid
un po 'di tempo fa. Ora stiamo scoprendo, dgrid non sembra supportare i widget dijit/dojox fuori dalla scatola.Widget all'interno dojo dgrid
dojox/DataGrid
ha un formatter()
che può restituire un widget. Così facile da fare lì! Il API comparison on GitHub dice
"dgrid supporta le funzioni di formattazione, ma non supporta la restituzione di un widget da loro .dgrid ha anche renderCell, che si prevede di ritorno un nodo DOM. Questo potrebbe apparentemente essere utilizzato per la visualizzazione widget (e il plugin della colonna editor fa esattamente questo.) Notare che per scopi di modifica della cella, l'uso del plug-in dell'editor della colonna è altamente incoraggiato. "
esattamente?
Ho provato a utilizzare il plugin di editor con {editor: ' ', editorArgs:' '}
. Questo rende un widget ma è troppo restrittivo. Ad esempio, come faccio a eseguire il rendering di dijit/Button
con l'etichetta come valore della cella? O qualcosa di più complesso, come posso usare uno (meno conosciuto) dojox/image/MagnifierLite
con un <img>
generato da una funzione di formattazione con il valore src
del negozio?
Sì! Che funzioni! Grazie! Nel tuo esempio stai usando efficacemente renderCell come formatter in dojox/DataGrid. La documentazione per dgrid afferma che se entrambi i formatter e renderCell sono entrambi applicati, il formattatore viene ignorato. Qualche idea sul perché è stata progettata così? –
Questo codice funziona ma sono abbastanza certo che abbia una perdita di memoria. [Per evitare questo uso removeRow] (https://github.com/SitePen/dgrid/blob/v0.3.15/doc/usage/Working-with-Widgets.md#destroying-rendered-widgets) – sixtyfootersdude