我的删除按钮将从数据库中删除一个条目,但不会从primefaces中的实际数据表中删除。直到您使用过滤器更改或F5 /新会话刷新它。
我已经看过这个问题的其他各种答案,而且我还是空白了。我已经尝试搞乱更新并使用oncomplete =“PF('datalistWidget')。filter()”等等。
使用primefaces 6.0和glassfish 4.1。任何帮助赞赏。 我粗略地遵循了http://www.oracle.com/technetwork/articles/java/java-primefaces-2191907.html的教程,然后添加了我自己的自定义。托管bean和外观等...都与数据库创建的类的教程类似。我没有在glassfish日志中看到任何错误。
数据表
<p:dataTable id="datalist" value="#{chemicalChemicalController.items}" var="item"
selectionMode="single" selection="#{chemicalChemicalController.selected}"
paginator="true"
editable ="true"
rowKey="#{item.chemKey}"
rows="10"
widgetVar="datalistWidget"
rowsPerPageTemplate="10,20,30,40,50"
filteredValue="#{chemicalChemicalController.itemsFiltered}"
>
删除命令按钮
<p:commandButton id="deleteButton" icon="ui-icon-trash"
value="#{bundle.Delete}" actionListener="#{chemicalChemicalController.destroy}"
update=":growl, datalist" disabled="#{empty chemicalChemicalController.selected}"/>
控制器删除命令
public void destroy() {
persist(PersistAction.DELETE, ResourceBundle.getBundle("/Bundle").getString("ChemicalChemicalDeleted"));
if (!JsfUtil.isValidationFailed()) {
selected = null; // Remove selection
items = null; // Invalidate list of items to trigger re-query.
}
}
答案 0 :(得分:0)
使用从对象中删除来销毁方法。
public void destroy(SelectEvent event) {
persist(PersistAction.DELETE, ResourceBundle.getBundle("/Bundle").getString("ChemicalChemicalDeleted"));
if (!JsfUtil.isValidationFailed()) {
selected = null; // Remove selection
items = null; // Invalidate list of items to trigger re-query.
}
RowObj rowObj = (RowObj) event.getObject();// here Row Object is your selected row item.
if(items != null)
{
//iterate items and delete matched with selected row object
}
}