2012-03-01 3 views
2

У меня есть простой вид (первый столбец показывает флажок) с пейджером сверху. Я хотел бы сделать выбор документов, которые затем будут экспортированы в Excel (с использованием apache POI).Как сохранить выбор при подкачке через просмотр?

Я могу выбрать 2 документа на стр. 1, но когда я перехожу на другую страницу, чтобы выбрать больше документов, весь мой выбор на стр. 1 исчез.

Как сохранить выбор при подкачке через просмотр?

ответ

2

Получение списка выбранных идентификаторов может быть сделан с

viewPanel.getSelectedIds() 

, но я полагаю, из-за ваш вопрос, то это только для текущей страницы. Решение заключалось бы в том, чтобы добавить настраиваемый столбец флажка с событием onclick с сервером, который добавит текущий выбранный отмеченныйв область scope (содержащий вектор). При загрузке строки вы проверите, найден ли этот var, и если да, установите флажок. При переключении между страницами вы можете выбрать больше документов.

Когда вы закончите выбор, вы можете использовать сгенерированный вектор для генерации документа excel. После завершения поколения очистите область VAR снова, и все готово.

Легкий как пирог;)

0

Вы пробовали pagerSaveState в библиотеке Extension?

Не знаете, какую часть информации о состоянии, которую он хранит.

+0

Нет, не работает. Использовали этот пример в образце extLib Sample Db (Domino_ViewState) и изменили первый столбец для отображения флажков. Развертывание/сбой сохраняется, но отмеченные флажки не указаны. –

0

Ulrich,

Было бы немного грубой силы; но у меня может быть предложение. У меня нет времени для его реализации, но я попытаюсь объяснить, как это работает.

У нас есть две проблемы. мы должны сохранить выбранные элементы на одной странице и восстановить их, если вы снова вернетесь на одну страницу.

Обычный флажок в столбцах вида не работает, потому что нам не разрешено вводить в него события. Поэтому вам нужно создать свой собственный флажок внутри столбца со значением идентификатора примечания.

Выбранные идентификаторы могут храниться внутри viewScope. В флажке вы должны установить или снять флажок в соответствии со списком, хранящимся в viewScope.

Вы также создаете элемент управления RPC для связи с объектом viewscope в фоновом режиме. Он должен иметь один метод: rpc.myMethod (noteId, checked). Он получит примечание, добавит/удалит из viewScope.

<xp:viewColumn id="viewColumn3" displayAs="hidden"> 
<xp:this.facets> 
    <xp:viewColumnHeader xp:key="header" id="viewColumnHeader3"></xp:viewColumnHeader> 
</xp:this.facets> 
<input class="xspCheckBoxViewColumn" type="checkbox" value="#{javascript:viewEntry.getNoteID()}" style="margin: 0px 2px; height: 12px;" onChange="rpc.myMethod(this.value, this.checked)"/></xp:viewColumn> 

Надеюсь, это поможет.

+0

yiyim, teşekkür ederim. Я дам ему попробовать. –

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