我遇到嵌套UI组件的问题,这可能是PrimeFaces和Mojara中的已知错误。但是我不知道如何解决它。
我们有一个带有上传器的图片库,我希望能够从数据网格中删除图片,所以
XHTML:
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{pictureManagementBean.handleFileUpload}"
mode="advanced"
update="gallery messages"
auto="true"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
/>
<p:growl id="messages" showDetail="true"/>
<p:dataGrid var="item" value="#{pictureManagementBean.pictures}" id="gallery">
<p:panel header="#{item.pictureName}" style="text-align:center">
<h:panelGrid columns="1" style="width:100%">
<p:graphicImage value="#{item.thumbnailDir}" />
<h:outputText value="#{item.createdate.toString()}" />
<p:commandLink value="Delete"
action="#{pictureManagementBean.removePicture(item.idpicture)}" ajax="false"/>
</h:panelGrid>
</p:panel>
</p:dataGrid>
</h:form>
基本上没有工作的东西 - 根本就是DataGrid中的commandLink Delete。其余的都很好。
有没有解决方法?我试过了:列,ajax,没有ajax ......什么都行不通。我所能做的就是获取DataGrid外部的按钮。但那不是我想要的。
任何有帮助的人都会感激不尽。
[小事:令人惊讶的是我在DataTable和Columns中使用了commandLink没有问题! ]
来自maven的Primefaces 3.4RC1。 (也没有在3.3.1上工作)
好的,所以我找到了一件事: 在<p:dataGrid>
内,如果我使用任何东西但是p:列不起作用。
但后来这个观点很糟糕......我应该用CSS来修复它吗?
答案 0 :(得分:3)
@Maple_shaft你是对的!
正确的代码:
<p:dataGrid var="item" value="#{pictureManagementBean.pictures}" id="gallery">
<p:column>
<p:panel header="#{item.pictureName}" style="text-align:center">
<h:panelGrid columns="1" style="width:100%">
<p:graphicImage value="#{item.thumbnailDir}" />
<h:outputText value="#{item.createdate.toString()}" />
<p:commandLink value="Delete"
action="#{pictureManagementBean.removePicture(item.idpicture)}" ajax="false"/>
</h:panelGrid>
</p:panel>
</p:column>
</p:dataGrid>
所以只是简单的列元素。我以前错了。非常感谢。
当然,支持bean是@ViewScoped!