2011-01-21 19 views
6

Ho una casella di suggerimento gwt che fa una chiamata RPC per ottenere alcuni dati dal server e visualizzarli. In alcuni casi ci sono fino a 2000 risultati. Mentre questo funziona bene in chrome quando il javascript viene eseguito in firefox, blocca la finestra per 5 secondi e talvolta visualizza script che non rispondono agli avvisi.Aggiungi un altro pulsante a gwt casella di suggerimento

Quello che volevo fare era qualcosa come mostrare 20 risultati e avere un pulsante in più che può solo aggiungere i prossimi 20 senza dover richiamare il server ogni volta che si fa clic. Sono abbastanza nuovo a questo, ho provato ad estendere suggestBox e sovrascrivere showSuggestions() ma è protetto quindi non posso.

Qualsiasi suggerimento/idea sarebbe fantastico.

Cheers, Rob

+0

Si dovrebbe forse dare un'occhiata a http://code.google.com/p/advanced-suggest-select-box/ c'è tutto quello che c'è è necessario –

risposta

4

Vedi this question per i suggerimenti su come estendere il GWT SuggestBox - in sostanza, si desidera fornire il proprio SuggestOracle (utilizzato per il recupero dei suggerimenti), forse la propria casella di testo (vedere i collegamenti nella domanda che ho menzionato in precedenza) e molto probabilmente una SuggestBox.SuggestionDisplay personalizzata. Questi tre sono passati tramite il costruttore a SuggestBox. Vedi le implementazioni di default esistenti (MultiWordSuggestOracle, SuggestBox.DefaultSuggestionDisplay) per alcune idee :)

+0

Grazie a Igor, ho implementato un suggerimento personalizzato SuggestBox.SuggestionDisplay alla fine e l'ho passato al Costruttore di suggerimenti. Funziona un fascino. Significa che posso limitare la quantità di loop che viene eseguita in modo che Firefox non muoia più a provare! :) – Rob

+2

Nessun problema :) Se hai qualche codice di esempio interessante da condividere su 'SuggestBox.SuggestionDisplay' che sarebbe ancora meglio - puoi includerlo in una nuova risposta, la domanda originale o posso anche aggiungerla al mio risposta. –

0

Se si desidera modificare il codice sorgente di SuggestBox vedere this si dovrebbe creare packeges com.google.gwt.user.client.ui nella root src e ci copiare SuggestBox.java. Quando usi SuggestBox chiama il tuo SuggestBox che si trova nel tuo src.
Controllare this anche può essere utile anche

0

Prima soluzione venire in mente è che scrivere il proprio widget di che si estende dal SuggestBox e la seconda soluzione forse cambiare i parametri di default css di suggestbox

.gwt-SuggestBox { 
} 
.gwt-SuggestBoxPopup { 
} 
.gwt-SuggestBoxPopup .item { 
} 
.gwt-SuggestBoxPopup .item-selected { 
} 
.gwt-SuggestBoxPopup .suggestPopupContent { 
} 
Problemi correlati