我有一个页面带有 p:fileUpload 和 p:commandButton ,第一次访问该页面时,该按钮应该被隐藏,并且在文件上传后按钮应该呈现。我的代码如下所示,关于如何实现这一点的任何想法?
<h:form enctype="multipart/form-data" >
<p:fileUpload
fileUploadListener="#{fileUploadController.handleFileUpload}"
mode="advanced"
multiple="true"
sizeLimit="2000000000"
allowTypes="/(\.|\/)(txt|csv)$/"
required="true"
label="Seleccionar"
uploadLabel="Subir a servidor"
cancelLabel="Cancelar">
</p:fileUpload>
<p:commandButton id="btnValidar" value=" Validar "
rendered="#{fileUploadController.btnRendered}"
style="margin-left: 430px;"/>
</h:form>
答案 0 :(得分:8)
只需使用update
属性,就像使用其他所有PrimeFaces ajax组件一样。
<p:fileUpload update="@form" />
我当然假设您已在btnRendered
方法中将true
设置为handleFileUpload
。
请注意,您无法将其设置为按钮本身的ID,因为当btnRendered
默认为false
时,它不会出现在HTML DOM树中。它就是JavaScript,它根据检索到的Ajax响应在HTML DOM树中执行更新作业。如果您想单独更新按钮而不是表单,请将其包装在HTML DOM树中始终的另一个组件中:
<h:panelGroup id="btnValidar">
<p:commandButton rendered="#{fileUploadController.btnRendered}" />
</h:panelGroup>
并按如下所示更新
<p:fileUpload update="btnValidar" />