2015-03-26 1 views
1

У меня есть прокручиваемый SelectOneListBox с> 50 элементами. Когда новый элемент добавлен-сохранен, он добавляется как последняя строка, которая находится за пределами текущей видимой области. Мне нужно, чтобы свиток списка автоматически включался в недавно добавленную строку (которая выбрана).Палитра ajax SelectOneListBox полоса прокрутки в желаемой позиции

Кнопка добавления и сохранения дополнена. Я использую Primefaces 5.0. Как я могу это сделать?

Код JSF страницы:

<p:commandButton title="Save" icon="ui-icon ui-icon-disk" > 
    <p:ajax process="name desc @this" 
    update="list msg" 
    listener="#{bean.saveListener}"/> 
</p:commandButton> 

<p:selectOneListbox id="list" scrollHeight="120" 
    value="#{bean.selectName}"> 
    <f:selectItems value="#{bean.data}" var="b" 
    itemLabel="#{b.desc}" itemValue="#{b.name}"/> 
    <p:ajax process="@this" update="@this name desc msg" 
    listener="#{bean.valueChanged}"/>   
</p:selectOneListbox> 
+0

Посмотрите на сгенерированный html и используйте все доступные javascript/jquery для прокрутки до нужной позиции. – Kukeltje

+0

Я решил проблему; решение следует. –

ответ

1

Я решил вопрос с этим:

Добавлена ​​это р кнопку команды в: АЯКС тег:

oncomplete="autoScroll()" 

включил этот скрипт:

function autoScroll() { 
    var scrollPos = 400; 
    jQuery('#fm\\:list .ui-selectlistbox-listcontainer').animate({scrollTop:scrollPos}); 
} 

Когда я нажимаю кнопку добавления-сохранения, новый элемент добавляется к нижней части элементов списка и прокручивается в нижней части списка. Скроллер перемещается к указанному scrollPos. Поскольку добавленный элемент списка - последняя строка, я использовал положение прокрутки больше, чем требуется. Это работает.

+0

Ниже приведена статья о прокрутке к выбранной строке в p: dataTable. Добавить строку: элемент создается и добавляется в таблицу. Этот элемент вставлен в таблицу и выбран. Таблица сортируется и позиции полосы прокрутки таблицы, чтобы отобразить выбранный элемент. [JSF p: dataTable - выберите выбранную строку] (http://www.javaquizplayer.com/blogposts/blogpost12.html) Сценарий jQuery, упомянутый в статье, также может быть применен к p: selectOneListBox. –

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