检查primefaces

时间:2017-06-13 14:58:57

标签: javascript jquery jsf primefaces datatable

我在jsf的primefaces中有一个数据表,我需要使用jquery / js检查数据表是否为空,但我刚刚找到了对PF不起作用的“普通”数据表的标记。

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>	

1 个答案:

答案 0 :(得分:2)

您的p:dataTable最有可能引用一个列表。为它添加一个ajax事件处理程序,例如过滤器(所有可以使页面为空的过滤器)

<p:dataTable value="#{myBean.myList}"...>
    <p:ajax event="filter" update="exportButton" ... >
    ...
</p:dataTable>

使用p:commandButton disabled属性,如下所示:

<p:commandButton id="exportButton" value="export" disabled="#{empty myBean.myList}" ... />

如果列表为空,则禁用commandButton客户端服务器端。所以用户也不能破解客户端。

&#39;更新&#39; commandButton中的元素确保按钮状态在相关事件上更新。这是所有相当基本的ajax内容,也许可以阅读一些关于

的教程