我有一个dataTable,可以通过点击删除行删除图像。 当我点击它时,数据被删除但表格没有呈现
这是我的代码:
<p:fieldset id="knowledgeBases" legend="#{appMsg.knowledge_base}">
<p:layout style="width:auto; height:800px;">
<p:layoutUnit position="center" id="kbCenter">
<p:dataTable id="kbDataTable" var="kb" value="#{KnowledgeBaseBean.kbList}" sortMode="multiple"
rows="10" paginator="true" rowsPerPageTemplate="10,15,20"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
<p:ajax event="filter" listener="#{KnowledgeBaseBean.onFilter}" update = ":formId:kbDataTable"/>
<p:column style="width:2%">
<h:commandLink title="#{appMsg.common_delete}" id="deleteImage" onclick="return confirm('#{appMsg.del_warn_current_record}')" >
<h:graphicImage name="images/new_design/image13.png" style="width:15px;height:15px;text-align: center" />
<f:ajax event="click" execute="@this" render="@form"
listener="#{KnowledgeBaseBean.deleteListItem}"/>
</h:commandLink>
</p:column>
...
答案 0 :(得分:0)
如果您使用整页布局,问题可能是您在layoutUnit周围有一个表单。反过来做。从Primefaces 4.0用户指南p。 262:
使用表单和整页布局时,请避免使用包含layoutunits的表单,因为生成的dom可能不一样。因此,无效。
<p:layout fullPage="true">
<h:form>
<p:layoutUnit position="west" size="100">
h:outputText value="Left Pane" />
</p:layoutUnit>
<p:layoutUnit position="center">
<h:outputText value="Right Pane" />
</p:layoutUnit>
</h:form>
A layout unit must have it’s own form instead, also avoid trying to update layout units because of same reason, update it’s content instead.
进一步解释here。
答案 1 :(得分:0)
问题出在我的豆子里。当我从数据库中删除对象时,我忘记从列表中删除该对象。