2010-11-10 4 views
0

Je dispose d'une date à laquelle un utilisateur peut rechercher et sélectionner un enregistrement à afficher. L'enregistrement remplace l'ensemble de la date avec un autre via un appel Ajax . deuxièmeGRAILSUI Datatable - sauvegarde et restauration de l'état entre invocations

datatable est un bouton pour vous permettre de revenir au premier .. à l'heure actuelle quand vous le faites vous revenez au début de la première table .. Ce que je veux faire est stocker l'état du premier datatable (page en cours, décalage, enregistrements max ..) lorsqu'un enregistrement est sélectionné afin que je puisse le restaurer quand ils y retournent .. En fait, stocker l'info n'est pas tellement un pro blem - c'est comment le réappliquer donc ma première table est comme l'utilisateur l'a laissé.

J'ai regardé et trouvé un code ..

YAHOO.util.Event.onDOMReady(function(e) { 

     var offset = new YAHOO.util.Element('offset').get('value'); 
     var max = new YAHOO.util.Element('max').get('value'); 

     var state = GRAILSUI.receiptBatchList.getState(); 
     state.sorting = state.sortedBy; 
     state.pagination.recordOffset = offset; 
     state.paginator.rowsPerPage = max; 

     var query = GRAILSUI.receiptBatchList.buildQueryString(state); 

     GRAILSUI.receiptBatchList.getDataSource().sendRequest(query,{ 
     success : GRAILSUI.receiptBatchList.onDataReturnReplaceRows, 
     failure : GRAILSUI.receiptBatchList.onDataReturnReplaceRows, 
     scope : GRAILSUI.receiptBatchList, 
     argument: state 
     }); 

où le décalage et max ne sont que des valeurs Hiden sur la page mais je ne peux pas que cela fonctionne et je vraiment espéré être raisonnablement rapide pour mettre en œuvre ..

Des suggestions?

TIA ..

Répondre

0

Comme un hack rapide, vous pouvez enregistrer les comme la partie de params responsable de l'état de la table d'une action de commande sur un côté serveur,:

def list = { 

    Map savedState = userService.currentUser.tableStates['MyController'] 
    if (savedState) { 
    params << savedState 
    } 

    // ... list instances 

    Map tableState = params.subMap(['max', 'offset', 'sort', 'order']) // add your filtering param name if you do some filtering 
    userService.currentUser.tableStates['MyController'] = tableState 
    // ... return instances 
} 

currentUser, bien sûr, a être singleton ou persistant.

Questions connexes