Jsf p:dataTable未找到任何记录
我在对话框中有一个数据表 当用户单击详细信息链接时,应显示带有数据表的对话框 代码如下:Jsf p:dataTable未找到任何记录,jsf,primefaces,datatable,jsf-2.2,Jsf,Primefaces,Datatable,Jsf 2.2,我在对话框中有一个数据表 当用户单击详细信息链接时,应显示带有数据表的对话框 代码如下: <h:form> <h:dataTable value="#{messageBean.messagesList}" var="msg"> <h:column> <f:facet name="header">Detail</f:facet> <p:commandLink action="#{messageBean.f
<h:form>
<h:dataTable value="#{messageBean.messagesList}" var="msg">
<h:column>
<f:facet name="header">Detail</f:facet>
<p:commandLink action="#{messageBean.fetchSelectedMessage(msg.msgId)}" value="#{msg.summary}" />
</h:column>
</h:dataTable>
</h:form>
然后,此对话框应打开并成功打开,但不显示任何内容
<p:dialog widgetVar="dlg1" modal="true" height="100">
<p:dataTable var="msg1" value="#{messageBean.selectedMessage}">
<p:column headerText="id">
<h:outputText value="#{msg1.msgId}"/>
</p:column>
<p:column headerText="to person">
<h:outputText value="#{msg1.toPerson}"/>
</p:column>
</p:dataTable>
</p:dialog>
为什么对话框数据表不能显示任何内容
selectedMessage是一个消息类型列表,不为空。每次单击后需要更新对话框:
<p:commandLink ... process="@this" update=":msgForm:dlgPanel" onComplete="PF('dlg1').show();"/>
通常,对话框已经在页面加载时绘制,它只是隐藏的,所以如果模型发生变化,您仍然需要AJAX更新它。向commandLink添加更新可能会修复它。@DavidS是这样的吗?更新=PF'dlg1'。显示;否,更新属性必须与页面上的组件ID匹配。您将想了解更多关于这方面的信息,因为这是将AJAX与JSF结合使用的一个重要部分。这里有一个例子。巴卢斯克在这里写了一本很好的指南。@DavidS是对的。在深入研究之前,先从一些基本的jsf/ajax教程开始
<p:commandLink ... process="@this" update=":msgForm:dlgPanel" onComplete="PF('dlg1').show();"/>