J'ai une table de données YUI (YUI 2.8.0r4) avec pagination AJAX. Chaque ligne de la table est liée à une page de détails/d'édition et je souhaite revenir à la page de liste contenant l'enregistrement de la page de détails. Donc je dois a) compenser les données AJAX correctement et b) dire à YAHOO.widget.Paginator quelle page sélectionner.Comment paramétrer YUI2 paginator pour sélectionner une page autre que la première page?
D'après ma lecture du YUI API docs, je dois passer dans l'option de configuration initialPage
. J'ai essayé ceci, mais ça ne prend pas (les données d'AJAX sont correctement décalées, mais le paginateur pense que je suis à la page 1, alors cliquer sur "suivant" me prend de la page 6 à la page 2.
Qu'est-ce que je fais pas (ou faire le mal)
Voici mon DataTable code du bâtiment:
(function() {
var columns = [
{key: "retailer", label: "Retailer", sortable: false, width: 80},
{key: "publisher", label: "Publisher", sortable: false, width: 300},
{key: "description", label: "Description", sortable: false, width: 300}
];
var source = new YAHOO.util.DataSource("/sales_data.json?");
source.responseType = YAHOO.util.DataSource.TYPE_JSON;
source.responseSchema = {
resultsList: "records",
fields: [
{key: "url"},
{key: "retailer"},
{key: "publisher"},
{key: "description"}
],
metaFields: { totalRecords: "totalRecords" }
};
var LoadingDT = function(div, cols, src, opts) {
LoadingDT.superclass.constructor.call(
this, div, cols, src, opts);
// hide the message tbody
this._elMsgTbody.style.display = "none";
};
YAHOO.extend(LoadingDT, YAHOO.widget.DataTable, {
showTableMessage: function(msg) {
$('sales_table_overlay').clonePosition($('sales_table').down('table')).
show();
},
hideTableMessage: function() {
$('sales_table_overlay').hide();
}
});
var table = new LoadingDT("sales_table", columns, source, {
initialRequest: "startIndex=125&results=25",
dynamicData: true,
paginator: new YAHOO.widget.Paginator({rowsPerPage: 25, initialPage: 6})
});
table.handleDataReturnPayload = function(oRequest, oResponse, oPayload) {
oPayload.totalRecords = oResponse.meta.totalRecords;
return oPayload;
};
})();