过滤数据表后,Primefaces 在对话框中丢失数据
Primefaces loses data in dialog after filter the datatable
大家好,我有一个关于 primefaces 数据表的问题。我建立了一个仪表板,人们可以在其中查找一些东西。所以在数据表中显示了数据库中的一些值。每行都有一个按钮以获取更多特殊细节。因此,如果您单击此按钮,它会打开一个包含更多详细信息的对话框。数据表的一些值显示在对话框中,还有一些值。所以这工作正常。现在我发现过滤器删除了我在对话框中的值。当我使用过滤器功能时,他会过滤我的值,更新并呈现新的数据表,当我现在单击按钮时,对话框框中的值消失了。为什么?
<h:form id="form1">
<p:dataTable value="#{auftragBean.auftragsDaten}" var="auftrag"
rowKey="#{auftragBean.auftragsDaten}" selectionMode="single">
<f:facet name="header">
...
</f:facet>
<p:column style="width:200px;text-align:center"
filterBy="#{auftrag.schadennummer}" headerText="Schadennummer"
filterMatchMode="contains">
#{auftrag.schadennummer}
</p:column>
<p:column headerText="Auftragsbericht" style="text-align:center">
<p:commandButton styleClass="viewbutton" icon="ui-icon-search"
style="border-left:1px solid #666; height:20px;font-size:10px;"
oncomplete="PF('dlg').show();" value="Open"
actionListener="#{auftragBean.initSelectedData(auftrag)}"
update="@widgetVar(dlg)" process="@this"></p:commandButton>
</p:column>
</p:dataTable>
<p:dialog appendToBody="true" appendTo="@(body)" modal="true"
id="dialog" resizable="false"
header="Auftragsbericht - #{auftragBean.auftragsData.jobId}"
widgetVar="dlg" showEffect="drop" hideEffect="drop">
<div style="max-height: 1000px; padding-right: 20px">
<p
style="margin-top: 10px; color: black; font-size: 16px; padding-bottom: 0px; text-align: center;">
<b>Bearbeitungsverlauf</b>
</p>
<div class="berichtTabelle">
<h:form id="form2">
<p:dataTable
style="width:1300px;margin:0 auto;margin-top:20px;overflow:hidden"
value="#{auftragBean.berichtsDaten}" var="bericht"
rowKey="#{bericht.tickerId}" selectionMode="single">
<f:facet name="header">
<p:outputPanel style="height:20px">
<h:outputText value="Bearbeitungsverlauf"
style="float:left;font-size:14px;" />
</p:outputPanel>
</f:facet>
<p:column style="text-align:center" headerText="Status">
#{bericht.status}
</p:column>
</p:dataTable>
</h:form>
</div>
</div>
</p:dialog> </h:form>
我用谷歌搜索了这个问题,但没有找到解决方案。也许有人可以提供帮助?
如果您筛选 dataTable
,您应该定义 dataTable
的 filteredValue
属性,它表示您筛选的数据。它应该与此 dataTable
的 value
属性类型相同。
大家好,我有一个关于 primefaces 数据表的问题。我建立了一个仪表板,人们可以在其中查找一些东西。所以在数据表中显示了数据库中的一些值。每行都有一个按钮以获取更多特殊细节。因此,如果您单击此按钮,它会打开一个包含更多详细信息的对话框。数据表的一些值显示在对话框中,还有一些值。所以这工作正常。现在我发现过滤器删除了我在对话框中的值。当我使用过滤器功能时,他会过滤我的值,更新并呈现新的数据表,当我现在单击按钮时,对话框框中的值消失了。为什么?
<h:form id="form1">
<p:dataTable value="#{auftragBean.auftragsDaten}" var="auftrag"
rowKey="#{auftragBean.auftragsDaten}" selectionMode="single">
<f:facet name="header">
...
</f:facet>
<p:column style="width:200px;text-align:center"
filterBy="#{auftrag.schadennummer}" headerText="Schadennummer"
filterMatchMode="contains">
#{auftrag.schadennummer}
</p:column>
<p:column headerText="Auftragsbericht" style="text-align:center">
<p:commandButton styleClass="viewbutton" icon="ui-icon-search"
style="border-left:1px solid #666; height:20px;font-size:10px;"
oncomplete="PF('dlg').show();" value="Open"
actionListener="#{auftragBean.initSelectedData(auftrag)}"
update="@widgetVar(dlg)" process="@this"></p:commandButton>
</p:column>
</p:dataTable>
<p:dialog appendToBody="true" appendTo="@(body)" modal="true"
id="dialog" resizable="false"
header="Auftragsbericht - #{auftragBean.auftragsData.jobId}"
widgetVar="dlg" showEffect="drop" hideEffect="drop">
<div style="max-height: 1000px; padding-right: 20px">
<p
style="margin-top: 10px; color: black; font-size: 16px; padding-bottom: 0px; text-align: center;">
<b>Bearbeitungsverlauf</b>
</p>
<div class="berichtTabelle">
<h:form id="form2">
<p:dataTable
style="width:1300px;margin:0 auto;margin-top:20px;overflow:hidden"
value="#{auftragBean.berichtsDaten}" var="bericht"
rowKey="#{bericht.tickerId}" selectionMode="single">
<f:facet name="header">
<p:outputPanel style="height:20px">
<h:outputText value="Bearbeitungsverlauf"
style="float:left;font-size:14px;" />
</p:outputPanel>
</f:facet>
<p:column style="text-align:center" headerText="Status">
#{bericht.status}
</p:column>
</p:dataTable>
</h:form>
</div>
</div>
</p:dialog> </h:form>
我用谷歌搜索了这个问题,但没有找到解决方案。也许有人可以提供帮助?
如果您筛选 dataTable
,您应该定义 dataTable
的 filteredValue
属性,它表示您筛选的数据。它应该与此 dataTable
的 value
属性类型相同。