我有一个问题与primeface数据表。我有一个数据与一些条目和一个列与一个按钮内。如果按钮被按下,一个弹出窗口打开与另一个数据表。第二个数据表中的条目取决于行中的按钮被按下。
<!-- first datatable -->
<h:form id="list">
<p:dataTable id="list1" var="item" value="#{bean1.itemlist}"
rowKey="#{item.id}" selection="#{bean1.selectedItem}"
selectionMode="single">
<p:column headerText="ID">
<h:outputText value="#{item.id}" />
</p:column>
...
<p:column headerText="Edit Entries">
<p:commandButton value="Edit Entries"
actionListener="#{bean2.updateEntries(item)}" ajax="true"
oncomplete="PF('edit_entries').show()" />
</p:column>
</p:dataTable>
<!-- Second datatable in the popup -->
<p:dialog header="Edit Entries" widgetVar="edit_entries" modal="true"
resizable="false">
<p:dataTable id="list2" var="entry"
value="#{bean2.entriesList}" rowKey="#{entry.id}"
selection="#{bean2.selectedEntry}" selectionMode="single">
<p:column headerText="Entry Number">
<h:outputText value="#{entry.number}" />
</p:column>
</p:dataTable>
<f:facet name="footer">
<p:commandButton value="Save" oncomplete="PF('edit_entries').hide()" />
</f:facet>
</p:dialog>
</form>
Bean2
public void updateEntries(Item selectedItem) {
this.entriesList = this.entriesQuery.getAllEntriesByItemID(selectedItem.getId());//db query could take some time
System.out.println("entrieslist size: " + this.entriesList.size()); //prints the correct size
}
问题是弹出式数据表中没有列出任何条目,尽管在db查询之后的列表中有一些条目。
有没有办法修复这个bug?提前感谢!
更新1:
<!-- first datatable -->
<h:form id="list">
<p:dataTable id="list1" var="item" value="#{bean1.itemlist}"
rowKey="#{item.id}" selection="#{bean1.selectedItem}"
selectionMode="single">
<p:column headerText="ID">
<h:outputText value="#{item.id}" />
</p:column>
...
<p:column headerText="Edit Entries">
<p:commandButton value="Edit Entries" update=":dialogUpdateEntries"
actionListener="#{bean2.updateEntries(item)}" ajax="true"
oncomplete="PF('edit_entries').show()" />
</p:column>
</p:dataTable>
</h:form>
<!-- Second datatable in the popup -->
<p:dialog header="Edit Enries" id="dialogUpdateEntries" widgetVar="edit_entries" modal="true"
resizable="false">
<h:form id="formEntriesList">
<p:dataTable id="list2" var="entry"
value="#{bean2.entriesList}" rowKey="#{entry.id}"
selection="#{bean2.selectedEntry}" selectionMode="single">
<p:column headerText="Entry Number">
<h:outputText value="#{entry.number}" />
</p:column>
</p:dataTable>
<f:facet name="footer">
<p:commandButton value="Save" oncomplete="PF('edit_entries').hide()" />
</f:facet>
</form>
</p:dialog>
尝试添加更新到编辑条目命令按钮(甚至更新@widgetVar(编辑条目))。
如果由于页面布局和结构的原因,您无法使用上述建议以第二个数据表为目标,则将其添加到第二个表中,并使用“编辑”按钮上的更新按钮对其进行更新。
您确实没有更新对话框中的数据表。JSF不会在模型更改时自动更新视图,您必须明确地告诉视图这样做。为此,可以使用ajax动作组件的更新属性。这需要一个JSF客户端ID,该ID可以通过以下相关答案中概述的规则找到:如何找到ajax更新/呈现组件的客户端ID?找不到表达式“foo”引用自“bar”的组件。
考虑到问题中所示的标记,这将是
<p:commandButton ... update=":list:list2" />
但是,还有另一个潜在问题。您正在使用
<h:form id="viewForm">
...
<p:commandButton ... update=":editDialog" />
...
</h:form>
<p:dialog id="editDialog" modal="true">
<h:form id="editForm">
...
</h:form>
</p:dialog>
我想知道如何更新PrimeFaces数据表行。这是我的datatable照片,以便更好地了解我: ![1]: http://i.stack.imgur.com/N1jGz.png 我想为每一行选择他各自的状态,然后单击保存状态按钮来保存这些值。 这是我的xhtml页面代码: 提前感谢。
我正在制作一个由任务管理器组成的应用程序。 在此任务管理器中,收件箱列表中有3个列表(收件箱、今天和星期),其中仅显示不带类别的任务,而在其他两个列表中,分别显示今天和本周的带类别或不带类别的任务。 我希望能够更改三个列表中一个任务的类别。因此,如果我更改收件箱任务的类别(不应该有类别),整个表都应该更新,任务应该从列表中删除。 我调试了程序,任务被正确地从列表中删除,但只有类别的单元格被更新,而
我有一个简单的POJO(字段1,字段2,字段3),我使用HibernateORM,我有一个基本的需求:我永远不应该更新数据库中的字段3。一旦第一次插入一行,当我调用回购以通过id(findById)获取对象时,即使我调用字段3的setter(setField3()),调用保存方法也应该抛出错误或异常,指定我正在尝试更新字段3,我不应该。我不知道Hibernate是否可以处理这种需求,或者我是否必须
如果我将一个字段定义为不可更新的,这是否意味着该字段根本不能更新?我想做的是在保存整个实体对象时防止字段被更新,但仍然能够编写显式更新该字段的查询。这可能吗? 我使用的是Hibernate和MySQL,但我更喜欢编写可移植代码。
在 redux 基本概念的不可变数据管理 中给出一些示例,演示了不可变的基本更新操作,例如,更新一个对象中一个字段,或者,在数组的末尾增加一个数据。然而,reducer 经常需要综合使用这些基本操作去处理更加复杂的任务。下面是一些你可能必须去实现的常见任务的例子。 更新嵌套的对象 更新嵌套数据的关键是必须适当地复制和更新嵌套的每个级别。这往往是那些学习 redux 一个难以理解的概念,当试图更新嵌
我知道有AJAX:https://datatables.net/examples/data_sources/server_side.html还有搜索:https://datatables.net/examples/api/multi_filter.html 但我不知道如何将两者结合起来。没错,什么时候。搜索,它按哪个列搜索?如果我想用ADD连接条件呢?