2013-05-02 1 views
0

У меня есть требование, когда я хочу, чтобы пользователь перемещал строки данных вверх и вниз. Я думал, что контекстное меню будет удобно, так как будет движение вверх и перемещение . Для этого я попытался реализовать контекстное меню для примера данных из Primefaces Showcase. Однако я не получаю выбранные значения из данных, которые будут отображаться в диалоговом окне.Невозможно получить выбранные значения в диалоге при использовании ContextMenu с Datatable

Пожалуйста, найдите следующий код:

<p:contextMenu for="availableCars"> 
     <p:menuitem value="View" update="display" icon="ui-icon-search" oncomplete="carDialog.show()"/> 
     </p:contextMenu> 
     <p:dataTable id="availableCars" var="car" value="#{RequestBean.formFields}" rowKey="#{car.car_group}" selectionMode="single" selection="#{RequestBean.selectedField}"> 
     <p:column headerText="Field Label"> 
     <h:outputText value="#{car.car_label}" /> 
     </p:column> 
     <p:column headerText="Field Group"> 
     <h:outputText value="#{car.car_group}" /> 
     </p:column> 
     <p:column headerText="Field Name"> 
      <h:outputText value="#{car.car_name}" /> 
     </p:column> 
     </p:dataTable> 

     <p:dialog header="Car Detail" widgetVar="carDialog" resizable="false" 
      width="200" showEffect="clip" hideEffect="fold" id="dialog"> 
     <h:panelGrid id="display" columns="2" cellpadding="4"> 
     <h:outputText value="Car label:" /> 
     <h:outputText value="#{RequestBean.selectedField.car_label}" style="font-weight:bold"/> 
     <h:outputText value="car Group" /> 
     <h:outputText value="#{RequestBean.selectedField.car_group}" style="font-weight:bold"/> 
     <h:outputText value="Car Name:" /> 
     <h:outputText value="#{RequestBean.selectedField.car_name}" style="font-weight:bold"/> 
     </h:panelGrid> 
     </p:dialog> 

Любая помощь будет оценена. N.B: Я использую PF 2.2.1

ответ

0

Похоже, что выбор не отправляется с использованием ajax - вам необходимо установить атрибут onRowSelectUpdate в таблице данных.

Из документации Primefaces:

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

+0

Спасибо @dratewka. Оно работает. Кроме того, я использовал rowSelectListener = "# {RequestBean.onCarSelect}", чтобы установить данные в selectedField. –