Disclaimer: io pesantemente uso YUI DataTable senza alcun mal di testa per un lungo periodo di tempo . È potente e stabile. Per le tue esigenze, puoi utilizzare una tabella ScrollingData che supporta
- x-scrolling
- y-scorrimento
- xy-scrolling
- Un potente meccanismo di eventi
Per quello che ti serve, penso che tu voglia sia un tableScrollEvent . La sua API dice
Attivato quando una DataTable a scorrimento fisso ha uno scorrimento.
Poiché ogni DataTable utilizza una DataSource, è possibile monitorare i suoi dati tramite tableScrollEvent insieme alle dimensioni del loop di rendering al fine di popolare la ScrollingDataTable in base alle proprie esigenze.
Indica la dimensione del loop di rendering
Nei casi in cui DataTable deve visualizzare l'insieme di un set di dati molto ampio, la configurazione renderLoopSize può aiutare a gestire il rendering DOM del browser in modo che il thread dell'interfaccia utente non venga bloccato su tabelle molto grandi . Qualsiasi valore maggiore di 0 farà eseguire il rendering DOM in catene setTimeout () che eseguono il rendering del numero specificato di righe in ciascun ciclo. Il valore ideale dovrebbe essere determinato per implementazione poiché non esistono regole rigide e veloci, ma solo linee guida generali:
- Per impostazione predefinita, renderLoopSize è 0, quindi tutte le righe sono visualizzate in un singolo ciclo. Un renderLoopSize> 0 aggiunge un sovraccarico, quindi usalo attentamente.
- Se il tuo set di dati è abbastanza grande (numero di righe X numero di complessità di formattazione Colonne X) che gli utenti sperimentano la latenza nel rendering visivo e / o causa il blocco dello script, considera l'impostazione di renderLoopSize .
- Un renderLoopSize sotto 50 probabilmente non ne vale la pena. Un renderLoopSize> 100 è probabilmente migliore.
- Un set di dati probabilmente non è considerato abbastanza grande a meno che non abbia centinaia e centinaia di righe.
- Avere renderLoopSize> 0 e <righe totali fa sì che la tabella sia renderizzata in un ciclo (uguale a renderLoopSize = 0) ma innesca anche funzionalità come lo striping di righe post-rendering da gestire da un thread setTimeout separato.
Per esempio
// Render 100 rows per loop
var dt = new YAHOO.widget.DataTable(<WHICH_DIV_WILL_STORE_YOUR_DATATABLE>, <HOW YOUR_TABLE_IS STRUCTURED>, <WHERE_DOES_THE_DATA_COME_FROM>, {
renderLoopSize:100
});
<WHERE_DOES_THE_DATA_COME_FROM> è solo una singola origine dati . Può essere un JSON, JSFunction, XML e persino un singolo elemento HTML
Qui puoi vedere un semplice tutorial, fornito da me. Essere consapevoli senza altri supporti DATA_TABLE pluglin singolo e doppio click allo stesso tempo. YUI DataTable ti consente. Inoltre, puoi usarlo anche con JQuery senza mal di testa
Alcuni esempi, puoi vedere
Sentiti libero di fare domande su tutto ciò che desideri su YUI DataTable.
Saluti,