Question

J'espère que je décris ma question assez .. va ici:

J'ai une table de données de YUI, obtenir un ensemble côté serveur d'enregistrements via JSON, et renseigne ensuite les données.

Les utilisateurs peuvent cliquer sur les en-têtes pour trier les données dans trois des 6 colonnes, (qui utilisent une fonction de tri personnalisé pour chaque colonne). Le tri est effectué du côté client.

Lorsqu'un utilisateur trie les données, je dois être en mesure d'obtenir une liste complète des valeurs de l'une des colonnes étant représentées. J'ai besoin de toutes les données disponibles, non seulement ce qui est rendu à la page. Les données cachées par la pagination doivent être inclus.

Toutes les idées? J'ai essayé les méthodes handleDataReturnPayload et doBeforeLoadData du DataTable, mais aussi donner les, données non triées originales.

Je suis vraiment coincé ici et j'ai un client en fonction d'une caractéristique qui dépend de moi d'obtenir cette liste triée.

Merci d'avance.

Était-ce utile?

La solution

Satyam, sur les YUI Forums a répondu à ma question parfaitement .

  

Les données sont effectivement stockées dans la   RecordSet. A tout moment vous pouvez aller   regarde, et il sera trié comme   affiché à l'écran, mais il aura   toutes les données, que ce soit montré ou non.

     

Méthode GetRecordset () vous donnera une   référence à lui et vous pouvez faire une boucle   à travers ses dossiers.

     

Vous pouvez écouter la columnSortEvent   pour être informé une sorte a eu lieu.

Je viens abonné à l'événement columnSortEvent et mis en boucle à travers le tableau retourné par datatable.getRecordSet (). GetRecords ().

Autres conseils

Je recommande de poster ce forum aux YUI - http://yuilibrary.com/forum/ - c'est un excellent endroit pour obtenir de l'aide sur les questions DataTable

.

Je suis tombé sur cette question à la recherche d'informations sur la façon de récupérer des informations à partir d'un ensemble de données qui a été pas affiché dans la table de données. Si vous placez les données cachées dans la source de données avant tout champ que vous souhaitez afficher, il sera rendu vide, mais si vous le placez après votre dernier champ qui sera rendu (tel que défini par les colonnes objet), ils ne seront pas rendre, mais toujours accessible par l'enregistrement).

var columns = [
    {key:"Whatchamacallits", children:[
        {key:"name" },
        {key:"price" }
    ]}
];
var ds = new YAHOO.util.DataSource('index.php...');
oDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
oDataSource.responseSchema = {
    fields:["name","price","id"]
};
var dt = new YAHOO.widget.DataTable("dt-id", columns, ds, {});
dt.subscribe("rowClickEvent", dt.onEventSelectRow);
dt.subscribe("rowSelectEvent", function(p){ alert(p.getData('id'); });
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top