2016-11-11 2 views
0

У меня есть p: menuButton в столбце p: в p: dataTable.Как создать динамический p: menuButton внутри jsf dataTable?

Пока все работает нормально.

Теперь я хочу, чтобы стиль меню был динамическим. Однако c: foreach оценивается перед рендерингом таблицы, а перфорирование не любит использовать ui: repeat внутри p: menuButton.

Как я могу создать ряд p: menuitem динамически на основе коллекции элемента строки, которую я перебираю, то есть что я должен делать вместо?: SomeKindOfLoop в примере ниже?

<p:dataTable value='#{something.collection}' var='item'> 
... 
    <p:column> 
    ... 
     <p:menuButton value="Actions"> 
      <p:menuitem value="View ..." 
       ...> 
       <f:param name="something" value="#{item.id}"/> 
      </p:menuitem> 
      <?:someKindOfLoop x="#{item.subCollection}" y="var"> 
       <p:menuitem value="View sub list " 
        ...> 
        <f:param name="#{var.name}" value="#{var.id}"/> 
       </p:menuitem> 
      </?:someKindOfLoop> 

     </p:menuButton> 
    ... 
    </p:column> 
</p:dataTable> 

Googling дает ряд подобных случаев, однако я не нашел еще, что не было ни о динамическом создании столбцов (подобно этому: Why can <c:forEach> or <ui:repeat> not access <p:dataTable var>?), или не иметь дело с primefaces.

+1

только '<с: forEach' бежит достаточно рано, чтобы создать новые элементы управления например ' Holger

ответ

2

PrimeFaces p:menuButton, как и многие другие компоненты, включая большинство компонентов меню, поддерживает атрибут модели. Это указано на page 329 in the PF6 documentation. Раздел «Динамические меню» этого компонента относится к разделу «общего» динамического меню по адресу page 323. Там вы можете прочитать, как это сделать.

И предотвратить этот ответ, чтобы быть «ссылка только» (на внешние сайты, здесь является своего рода дубликат этого вопроса: Primefaces : how to create <p:menubar> dynamically in primefaces 4?

+0

Я думаю, это то, что мы искали. Поскольку мы пытаемся добавить это к каждая строка в таблице, я думаю, мы попробуем что-то в строках . Попробуй это сейчас. Большое спасибо! –

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