2013-11-21 9 views
0

У меня есть панель просмотра в xpages и вычисленное поле, чтобы показать количество строк. У меня есть 2 проблемы:XPages: как подсчитывать строки с разбивкой по страницам

1st: как я могу подсчитать только строки текущей страницы пейджера? Кажется, что viewPanel.getRowCount() получает все строки от начала до текущей страницы, поэтому, если у меня есть 30 записи на страницу и я на странице 2, это показывает 60 вместо 30.

2nd: даже если я достиг выше, пейджер только обновляет представление, и я не могу обновить вычисленное поле или другую панель. Могу ли я поместить вычисленное поле внутри панели просмотра или сделать его каким-то образом обновленным при каждой смене страницы? я бы предпочел не делать этого с полным обновлением страницы, если это возможно ...

ответ

1

Учитывая заданную проблему обновления поля, даже если вам удалось получить количество строк (например, в переменной SSJS для области страницы), это woudln 't обновить вычисленное поле.

Возможно, было бы проще подсчитать строки в таблице HTML, используя clientide javascript?

что-то вроде ..

страница OnLoad событие:

get the HTML table 
get the table rows property (array of rows in the table) 

number or rows = that value (1st row = TH (header) row if there is one = row 0) 

использование javsscript заткнуть это значение в известной DIV

+0

Да, я пытаюсь работать над этим, но все еще кажется, что он не работает должным образом. я буду обновлять вас, когда у меня есть (хорошие или плохие) результаты ... :) –

0

Пейджер должен иметь свойство "refreshID", в котором вы можете поместите идентификатор клиента (!) панели, которую вы хотите обновить. Используйте getClientId() для вычисления идентификатора клиента на панели.

Для подсчета строк: используйте панель инструментов отладки XPages (из openNTF), чтобы проверить свойство панели просмотра или пейджера, который дает вам текущий номер страницы. Если вы это получили, вы можете просто вычислить с помощью viewPanel.getRowCount() - (номер страницы * количество строк на странице).

+0

у пейджера нет свойства идентификатора обновления, к сожалению ... –

1

Вы также можете убрать частичное обновление, выпущенное с пейджера, и проверить обновленный идентификатор. Если идентификатор соответствует идентификатору панели просмотра, вы можете выполнить еще одно частичное обновление, чтобы обновить другую панель.

Пример код для угона частичного обновления:

var sysHijackPartialRefresh = function(){ 
    XSP._inheritedPartialRefresh = XSP._partialRefresh; 
    XSP._partialRefresh = function(method, form, refreshId,options) { 


    if (options){ 
     if (!options.onComplete) { 
      options.onStart = function(){ 

      }; 
      options.onComplete = function(){ 
       if (refreshId == "<client id of view panel>") { 
       // issue another partial refresh 
       XSP.partialRefreshGet(<client id of the other panel>); 
       } 
      }; 
     } 
    } 
    this._inheritedPartialRefresh(method, form, refreshId, options); } 
} 

XSP.addOnLoad(sysHijackPartialRefresh); 

http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_events_and_partial_or_full_refresh См для получения дополнительной информации о частичных обновлениях.

 Смежные вопросы

  • Нет связанных вопросов^_^