Мне нужно добавить флажки для каждого заголовка столбца в <rich:dataTable>
. Выбранный флажок означает, что соответствующий столбец будет включен в отчет PDF, который будет сгенерирован из данных таблицы. Дополнительные требования: столбцы должны быть сортируемыми, и я должен иметь возможность смешивать теги <rich:column>
и <rich:columns>
.
Я пытался сделать это несколькими разными способами. Если я использую <rich:columnGroup>
, как это:
<rich:dataTable>
<f:facet name="header">
<rich:columnGroup>
<rich:column sortBy="#{bean.foo}">
<h:outputText value="bar"/>
<h:selectBooleanCheckbox value=.../>
</rich:column>
<rich:columns ...>
<h:outputText value="bar"/>
<h:selectBooleanCheckbox value=.../>
</rich:columns>
</rich:columnGroup>
</f:facet>
<rich:column>
<h:outputText value="#{bean.baz}"/>
</rich:column>
<rich:columns value=... var=...>
<h:outputText value="#{bean.foobar}"/>
</rich:columns>
</rich:dataTable>
Тогда значок сортировки не отображается. В качестве альтернативы я попытался поместить текст и флажок внутри <h:panelGroup>
, например:
<rich:dataTable>
<rich:column sortBy="#{bean.foo}">
<f:facet name="header">
<h:panelGroup layout="block">
<h:outputText value="bar"/>
<h:selectBooleanCheckbox value=.../>
</h:panelGroup>
</f:facet>
<h:outputText value="#{bean.baz}"/>
</rich:column>
<rich:columns ...>
<f:facet name="header">
<h:panelGroup layout="block">
<h:outputText value="bar"/>
<h:selectBooleanCheckbox value=.../>
</h:panelGroup>
</f:facet>
<h:outputText value="#{bean.foobar}"/>
</rich:columns>
</rich:dataTable>
Таким образом, все показано, но когда я нажимаю флажок, он запускает сортировку столбцов, а это не то, что мне нужно.
Я искал в Интернете ответ на вопрос, но не нашел ничего в точности похожего на мою проблему. Кто-нибудь знает лучший способ сделать что-то подобное или хотя бы, как избежать сортировки, когда я нажимаю флажок во втором примере кода?
Большое спасибо.