У меня есть таблица данных YUI (YUI 2.8.0r4) с нумерацией страниц AJAX. Каждая строка в таблице ссылается на страницу сведений / редактирования, и я хочу связать эту страницу сведений со страницей списка, содержащей запись со страницы сведений. Поэтому я должен: а) правильно сместить данные AJAX и б) сообщить YAHOO.widget.Paginator, какую страницу выбрать.
Согласно моим прочтениям документации по YUI API , я должен передать параметр конфигурации initialPage
. Я пытался это сделать, но этого не происходит (данные из AJAX корректно смещены, но пагинатор считает, что я на странице 1, поэтому нажатие кнопки «Далее» переводит меня, например, со страницы 6 на страницу 2.
Что я не делаю (или делаю неправильно)?
Вот мой строительный код DataTable:
(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;
};
})();