【发布时间】:2014-04-28 20:10:27
【问题描述】:
我很困惑为什么组件p:fileUpload 不调用fileUploadListener 一旦组件由p:ajax 显示。如果我把它放在panelGrids 之外,甚至删除它们,就可以了。
什么不起作用:
<div class="pure-control-group">
<label for="mostraNoIndex">Slideshow</label>
<p:selectBooleanCheckbox value="#{destaqueCadastrarBean.d.apareceNoSlide}">
<p:ajax event="change" update="upload"></p:ajax>
</p:selectBooleanCheckbox>
</div>
<h:panelGrid id="upload">
<h:panelGrid rendered="#{destaqueCadastrarBean.d.apareceNoSlide}">
<div class="pure-control-group">
<label for="mostraNoIndex">Imagem</label>
<p:fileUpload fileUploadListener="#{destaqueCadastrarBean.handleFileUpload}" mode="advanced" dragDropSupport="true" sizeLimit="100000000000" fileLimit="1" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
</div>
</h:panelGrid>
</h:panelGrid>
什么有效:
<div class="pure-control-group">
<label for="mostraNoIndex">Slideshow</label>
<p:selectBooleanCheckbox value="#{destaqueCadastrarBean.d.apareceNoSlide}">
</p:selectBooleanCheckbox>
</div>
<div class="pure-control-group">
<label for="mostraNoIndex">Imagem</label>
<h:fileUpload fileUploadListener="#{destaqueCadastrarBean.handleFileUpload}" mode="advanced" dragDropSupport="true" sizeLimit="100000000000" fileLimit="1" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
</div>
【问题讨论】:
-
我认为引用
upload不在这里。你的表格在哪里? -
上传参考是正确的,因为当按下/单击 p:selectBooleanCheckbox 时,panelGrid 正确出现。我把表格拿出来只是为了保持清洁,我应该张贴吗?不过有点大。
-
还有
<p:fileUpload>而不是<h:fileUpload>? -
确实是
。抱歉,复制/粘贴
标签: ajax jsf jsf-2 primefaces