我在 primefaces 中有一个带有 jsf 的数据表,我需要用 jquery/js 检查数据表何时为空,但我刚刚找到了不适用于 PF 的“普通”数据表的标签。
bean
private ArrayList<Curso> curs = null;
private ArrayList<Curso> listado_filtrado;
private DefaultStreamedContent informe_cursos;
HTML
<p:outputPanel id="opTabla" >
<p:dataTable id="tabla_elements"
value="#{Cursos.curs}"
var="element"
filteredValue="#{Cursos.listado_filtrado}"
emptyMessage="No se encontraron elementos"
paginator="true" rows="20"
currentPageReportTemplate="{startRecord} a {endRecord} de {totalRecords}"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
paginatorPosition="bottom">
<p:ajax event="filter" update="exportar"/>
<f:facet name="header">
<div class="header-field-col">
<p:commandButton id="anadir_curso" value="Añadir curso nuevo" icon="ui-icon-plus" />
</div>
<div class="header-field-col">
<p:commandButton id="exportar" value="Exportar" ajax="false" disabled="#{empty Cursos.curs}"
icon="ui-icon-arrowreturnthick-1-s">
<p:fileDownload value="#{Cursos.informeCursos}" />
</p:commandButton>
</div>
</f:facet>
最佳答案
您的p:dataTable
很可能引用了一个列表。向其中添加 ajax 事件处理程序,例如过滤器(所有可以使页面变空的过滤器)
<p:dataTable value="#{myBean.myList}"...>
<p:ajax event="filter" update="exportButton" ... >
...
</p:dataTable>
使用带有 disabled
属性的 p:commandButton
,如下所示:
<p:commandButton id="exportButton" value="export" disabled="#{empty myBean.myList}" ... />
如果列表为空,它会禁用命令按钮客户端和服务器端。因此用户也无法在客户端破解它。
commandButton 中的“update”元素可确保按钮状态,嗯,...根据相关事件进行更新。这是相当基本的 ajax 内容,也许可以阅读一些相关教程
关于javascript - 检查 primefaces 中的数据表是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44525080/