Treeble con YUI 3 DataTable

24 gen 2011 alle 10:41 da John Lindal | In sviluppo , YUI 3 Galleria | 6 commenti

La versione beta di DataTable in YUI 3.3.0 ci dà un componente molto potente per giocare. A calci le gomme in modo utile, ho deciso di aggiornare il mio Treeble esempi di utilizzare DataTable. (Treeble permette la visualizzazione di dati gerarchici in una tabella .)

Con mia grande gioia, è stato un gioco da ragazzi! Tutto il lavoro duro è fatto in TreebleDataSource , che si estende YUI 3 DataSource, quindi tutto quello che dovevo fare era inserirlo in DataTable utilizzando Y.Plugin.DataTableDataSource e quindi configurare le colonne:

 var ds = new Y. TreebleDataSource (...),
	 pg = new Y. paginator (...),
	 tavolo;

 sendRequest funzione () {
	 table.datasource.load ({
		 richiesta: {
			 startIndex: pg.getStartIndex (),
			 resultCount: pg.getRowsPerPage ()
		 }
	 });
 }

 var cols = [
     {Chiave: 'yui33-hack', etichetta:''},
     {
         chiave: 'treeblenub', etichetta:'',
         formattatore: Y.Treeble.buildTwistdownFormatter (sendRequest)
     },
     {
         chiave: 'title', etichetta: 'Titolo',
         formattatore: Y.Treeble.treeValueFormatter
     },
     ...
 ];

 tabella = new Y.DataTable.Base ({columnset: cols});
 table.plug (Y.Plugin.DataTableDataSource, {datasource: ds});

Per vedere il codice sorgente completo, consultare la esempio dal vivo .

Le mosche solo l'unguento sono:

  • Il yui33-hack colonna. A causa di un bug nel YUI 3.3.0 DataTable , il td elemento passato a un formattatore colonna è in realtà dalla colonna precedente. Così, la prima colonna della tabella mostra il twistdown, e la seconda colonna è vuota.
  • I valori non definiti nei dati vengono visualizzati come {value} invece di spazi ( bug 2529858 ).

Al fine di rendere Treeble più facile da usare, ho aggiunto una pelle Sam che gli stili per le classi CSS scritto dal Y.Treeble formattatori.

Buon divertimento!

Circa l'autore: Giovanni Lindal ( @ jafl5272 su Twitter) è uno degli ingegneri di piombo costruendo le fondamenta su cui Yahoo! APT è costruito. In precedenza, ha lavorato sulla Publisher Network Yahoo!.

Condividere ed estendere: Bookmark con del.icio.us | Digg it! | reddit!

6 commenti »

RSS feed dei commenti a questo articolo. TrackBack URI

  1. Treeble è un'idea fantastica! Non avevo mai visto che uno prima. Ho appena potrebbe considerare l'uso sul mio sito gt5power.com per visualizzare la Guida al gioco / FAQ invece di utilizzare un widget di 2 TreeView YUI.

    Se finisco per usarlo lì o no, non ho dubbi che questa è una cosa che finirò per usare più volte in futuro!

    Evviva

    Commento di Floydian - 25 Gennaio 2011 #

  2. molto cool!

    Commento di devsmt - 28 Gennaio, 2011 #

  3. Ciao Giovanni,

    Sto usando il tuo Treeble con YUI 2 ma ho una richiesta che è se è possibile espandere / comprimere tutte le righe in una volta.

    Grazie

    Commento di Thanh - 21 apr 2011 #

  4. Espandi tutto è un'operazione molto costosa, perché richiede normalmente una chiamata XHR per ogni nodo che viene aperto. Puoi farlo, ma devi chiamare la funzione di commutazione per ogni nodo separatamente.

    Commento di Giovanni Lindal - 21 Aprile 2011 #

  5. Sì, ho provato questa soluzione e come u ha detto che non è molto performante e il congelamento navigatore quando c'è così tanti i nodi da espandere.

    Quindi non esiste una soluzione in cui possiamo creare la treeble con tutti i nodi aperti ... che peccato!

    grazie comunque.

    Commento di Thanh - 28 Aprile 2011 #

  6. Recentemente ho aggiunto una opzione per YUI 3 Treeble in modo da poter specificare lo stato iniziale di un nodo come parte dei dati. Si potrebbe provare che in alternativa all'apertura tutto tramite il toggle () API.

    Commento di Giovanni Lindal - 28 aprile 2011 #

Lascia un commento

Nota: I commenti sono moderati per la prima volta. Spam cancellato.

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ospitato da Yahoo!

Copyright © 2006-2011 Yahoo! Inc. Tutti i diritti riservati. Informativa sulla privacy - Termini di Servizio

Powered by WordPress su Yahoo! Web Hosting .