2011-12-16 1 views
0

XHTML файла: AccordionPanel, содержащие таблицы данных с SelectionMode = "Multiple"

<p:tab title="firstTab" id="FT"> 

     <p:dataTable var="..." value="#{...}" id="firstTable" selectionMode="multiple" 
     selection="#{myController.selectedRows}"> 
      <p:column>...</p:column> 
      <p:column>...</p:column> 
      <p:commandButton value="View" action="#myController.viewSelected}"/> 
     </p:dataTable> 
    </p:tab> 

    <p:tab title="secondTab" id="ST"> 

     <p:dataTable var="..." value="#{...}" id="secondTable" selectionMode="multiple" 
     selection="#{myController.selectedRows}"> 
      <p:column>...</p:column> 
      <p:column>...</p:column> 
      <p:commandButton value="View" action="#myController.viewSelected}"/> 
     </p:dataTable> 
    </p:tab> 

Managed Bean:

@ManagedBean 
@RequestScoped 
public class MyController{ 
    MyObject[] selectedRows; 
     //get+set 

    public void viewSelected(){ 
     System.out.println(selectedRows.length) 
    } 
} 

Выход консоли изменяется. Иногда вывод , но обычно выбранный контент Rows перепутался. Результат смешанный, если у меня есть выбор в обеих таблицах данных и нажмите один из двух команд CommandButton. Я предполагаю, что это происходит потому, что для кнопок нет определенного идентификатора, или, может быть, я должен использовать разные бизнес-атрибуты для каждого dataTable. Какое правильное решение этой проблемы?

Спасибо!

ответ

1

Какую версию PF вы используете?

Также, если commandButton не находится внутри колонки или чего-либо еще, что с ним связано? Если вы хотите быть DataTable сноска вы должны сделать так:

<f:facet name="footer"> 
    <p:commandButton value="View" action="#myController.viewSelected}"/> 
</facet> 

так, как вы назначаете выбранные строки из обоих DataTables в том же массиве, я бы сказал, что это не очень хорошая практика , на самом деле я никогда не видел ничего подобного! Какой смысл? Даже вы хотели бы иметь две таблицы данных с одинаковыми записями, вы должны хотя бы назначить different array/list для выбранных записей в каждой таблице и поместить их в different forms, если вы не хотите запускать оба события при нажатии только команды Command ...

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

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