Sto usando CellTable per mostrare i miei record, ma ora il fatto è che voglio mostrare una casella di selezione quando l'utente fa clic su una cella. Un'altra cosa è che la casella di selezione è il mio widget personale, non un predefinito. Potete per favore suggerirmi qualche metodo per farlo?Come posso inserire un widget in una cella CellTable?
risposta
C'è un post sul gruppo GWT di Google che parla di the answer. Fondamentalmente si crea il proprio widget personalizzato normalmente, e all'interno della funzione di rendering si utilizza widget.getElement(). GetInnterHTML().
@Override
public void render(com.google.gwt.cell.client.Cell.Context context,
String value, SafeHtmlBuilder sb) {
if (value != null) {
MyWidget widget = new MyWidget(value);
sb.appendEscaped(widget.getElement.getInnerHTML());
}
}
Invece di usare widget.getElement.getInnerHTML(), sto usando widget.getElement.getString(), perché include l'HTML esterno. –
è possibile riutilizzare lo stesso widget per rendere l'HTML per ogni cella? (Probabilmente dovrei semplicemente scrivere un codice per scoprirlo ... ma solo per incuriosito ..) – HaveAGuess
Qualche tempo fa ho dovuto affrontare il problema simile (provato ad inserire un widget personalizzato nella cella CellList), ma sfortunatamente non ho trovato una soluzione facile.
In genere, è possibile implementare una classe di celle specifica, con estensione AbstractCell o ActionCell. In questo caso dovrai sovrascrivere il metodo render() e implementare il tuo rendering. Un buon esempio è dato in AbstractCell class javadoc.
Questo è un anti-pattern. L'intero scopo delle celle è che NON hai widget: devi "renderizzare" l'html direttamente nella cella.
perché hanno aggiunto il supporto per i widget UIBinder alle celltables? (non esattamente una citazione ma dal thread: http://groups.google.com/group/google-web-toolkit/browse_thread/thread/9cfb4a3b5c4af0be/b75305d15a1c32e8?lnk=gst&q=celltable+widget#b75305d15a1c32e8) – HaveAGuess
potrebbe essere, ma a volte inevitabile – jabal
Non sono d'accordo, a volte non vuoi preoccuparti di HTML e lascia che GWT esegua il rendering dei widget per te. – RockyMM
C'è un post sul gruppo google GWT che discute la risposta. Fondamentalmente si crea il proprio widget personalizzato normalmente, e all'interno della funzione di rendering si utilizza widget.getElement(). GetInnterHTML().
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
if (value != null) {
MyWidget widget = new MyWidget(value);
sb.appendEscaped(widget.getElement.getInnerHTML());
}
}
Funziona ma c'è una limitazione:
- È PUOI NON allegare qualsiasi gestore direttamente sul tuo widget (esterno o interno).
ad esempio:
widget.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Won't work!!!
}
});
o:
widget.getMyTextBox().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Won't work!!!
}
});
Esiste una soluzione alternativa per questa limitazione? Voglio davvero implementare una tale funzionalità. – nanospeck
dare un'occhiata a http: // StackOverflow.it/questions/4691801/how-can-i-render-a-clickabletextcell-as-an-anchor-in-a-gwt-celltable guarda la risposta di 'thomas' – user949110
Attenzione che l'evento click verrà attivato quando viene fatto clic su ** qualsiasi ** nella colonna. Se nella colonna sono presenti due pulsanti, non sarà possibile distinguere tra i clic su cui si fa clic. In questo caso, fare riferimento a questa risposta: http://stackoverflow.com/questions/9108317/gwt-celltable-need-to-have-two-buttons-in-last-single-cell-of-each-row. – Ben
- 1. Magento: come posso inserire i widget in un layout xml?
- 2. Gwt celltable invoca l'ordinamento su una colonna
- 3. Come posso inserire Regex.Match in una matrice?
- 4. Come posso inserire virgolette in una stringa?
- 5. Come inserire un'immagine nella cella excel?
- 6. Come inserire l'HTML nella cella Slickgrid?
- 7. Come inserire "NULL" nella cella SSMS?
- 8. Come posso inserire una richiesta POST in un UIWebView
- 9. Come posso aggiungere due righe in una singola cella pdf?
- 10. Come inserire a livello di codice una nuova riga in una cella di Excel in C#?
- 11. Come posso inserire un backtick in GHCi?
- 12. come inserire il valore nella cella DataGridView?
- 13. Come inserire un'immagine nella cella di JTable
- 14. creare una cella personalizzato in un NSTableView
- 15. Come posso aggiungere un ID univoco a una cella personalizzata?
- 16. Come posso sostituire un widget GWT in un pannello?
- 17. GWT: come cambiare colore di riga in GWT Celltable
- 18. C# @ "" come posso inserire una scheda?
- 19. Utilizzando il valore in una cella come un riferimento di cella in una formula?
- 20. Come posso creare una cella di tabella multilinea in iOS?
- 21. Come posso usare QColorDialog all'interno di un altro widget non come una finestra di dialogo separata?
- 22. Come posso inserire html in una JLabel in java?
- 23. Come posso inserire elementi in una coda in C#
- 24. Come posso inserire un valore NULL
- 25. Come inserire un carattere in una NSString
- 26. Posso inserire un file .gitmodules in una sottodirectory?
- 27. Posso inserire una stringa vuota in un campo NOT NULL?
- 28. posso inserire un selettore C obiettivo in una struct?
- 29. Come posso personalizzare l'output html di un widget in Django?
- 30. Come posso impostare un'ombra in ogni cella di un ListView?
Si prega di [di non utilizzare le firme o slogan] (http://stackoverflow.com/faq#signatures) nei tuoi post. – meagar
Ho lo stesso problema - Ho bisogno di rendere alcuni widget abbastanza pesanti (in termini di logica) in celle in una tabella. Quello che volevo da CellTable era di essere in grado di fornire una fabbrica IsWidget da utilizzare per generare il widget per il rendering di ogni cella in una colonna. Non riesco a vedere un modo semplice per farlo, ma preferisco non implementare tabelle da zero. – drdozer