2013-03-20 3 views
1

Это может показаться довольно странным, но проверяя, есть ли какие-либо возможности для получения заданного значения строки, если действие не находится в строке данных.JSF databatable selected row

У меня есть следующие в JSF странице

<p:dataTable id="det" var="emp" lazy="true" 
value="#{myMB.lazyModel}" paginator="true" 
paginatorPosition="bottom" rows="10" 
    rowKey="#{emp.employeeNumber}"> 

    <f:facet name="header">     
     Employee Details  
    </f:facet> 

Если добавить следующее в <p:column> </p:column> я в состоянии получить selectedDepartment строку в ManagedBean, но кнопка, если я добавляю выше <p:column> </p:column>, то есть не в DataTable ряду, но в заголовке я не могу получить строку selectedDepartment, потому что она не находится в строке данных.

Есть ли способ получить выбранную строку в случае, если я добавлю кнопку не в datatable row?

   <p:commandButton id="addEmployee" 
       icon="ui-icon-plus"       
       oncomplete="newEmployeeDialog.show()" > 
    <f:setPropertyActionListener value="#{emp}" 
    target="#{myMB.selectedDepartment}" /> 
     </p:commandButton> 
+0

Вы можете использовать '' и избегать использования ''. –

+0

@LuiggiMendoza Итак, действие вызывает метод 'setDepartment', который принимает параметр или передает id datatable det для установки метода? – user75ponic

+0

Думаю, было бы лучше первого. –

ответ

1

Я не думаю, что вы можете получить информацию как rowId, если вы не надели кнопку внутри строки. Я предлагаю вам сначала получить идентификатор из dataTable, а затем взять его в любое скрытое значение, чтобы использовать его в commandButton.