Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Primefaces 如何将参数从Prime Faces 6.2中的数据表内传递到模态窗口?_Primefaces_Jsf 2 - Fatal编程技术网

Primefaces 如何将参数从Prime Faces 6.2中的数据表内传递到模态窗口?

Primefaces 如何将参数从Prime Faces 6.2中的数据表内传递到模态窗口?,primefaces,jsf-2,Primefaces,Jsf 2,我需要有一个链接来显示一个模式窗口,当按下数据表中的行值时,如下图所示,但显然我通过请求参数将值从数据表传递到模式窗口的方法是错误的。所以我收到了窗口内的空白区域。下面是它的外观图片和代码示例(黄色三角形是链接): 那个么,在从数据表传递参数或在标记中接收参数时,是否有任何规则可以遵循以解决此类问题?提前谢谢你的回答。如果需要,将添加任何其他信息。您可以在对话框中的outputtext中添加id <p:panelGrid columns="1" columnsWidth="540

我需要有一个链接来显示一个模式窗口,当按下数据表中的行值时,如下图所示,但显然我通过请求参数将值从数据表传递到模式窗口的方法是错误的。所以我收到了窗口内的空白区域。下面是它的外观图片和代码示例(黄色三角形是链接):



那个么,在从数据表传递参数或在标记中接收参数时,是否有任何规则可以遵循以解决此类问题?提前谢谢你的回答。如果需要,将添加任何其他信息。

您可以在对话框中的outputtext中添加id

  <p:panelGrid columns="1" columnsWidth="540px">
        <h:outputText id="exportErrorText" value=" " escape="false" />
    </p:panelGrid>

然后在你的按钮上做类似的动作

<p:commandLink id="ticketErrorShowlink"
                               action="ticketError"
                               oncomplete="document.getElementById('exportErrorText').innerHTML = '#{ticket.errors}'; PF('exportError').show();">

已解决:添加了将数据表中的值设置为支持bean的

<h:form id="protocolForm">
  <p:dataTable id="ticketList" value="#{tickets}" var="ticket">
    <p:column headerText="Статус экспорта">
      <h:outputText value="#{ticket.exportStatus.caption}"/>
      <p:commandLink id="ticketErrorShowlink"
                     oncomplete="PF('exportError').show()">

         <h:graphicImage url="/images/shim.gif" style="border:0; vertical-align:center" width="5"/>
         <h:graphicImage id="headImageHelp" url="/images/mess_warning.gif" title="Ошибки экспорта"
                         style="border:0; vertical-align:bottom"/>
         <p:ajax listener="#{protocolForm.setErrors(ticket.errors)}" update=":protocolForm:ticketErrorPanelGroup"/>
      </p:commandLink>
   </p:column>
</p:dataTable>

// dialog down there

设置查询完成后,将打开获取值的窗口

也许您可以在对话框中执行
,并在
中更新=“ticketrrormodalpanel”,但不幸的是,它会产生相同的结果。您可以在
p:commandLink
中使用
f:setPropertyActionListener
设置参数,哪个将显示在
p:dialog
中?如果一个表中有多行链接到模式窗口,您能否澄清它应该如何工作?例如,我可以创建一个备份bean中所有错误文本的列表。但我将如何确定应该附加到哪个列表项呢?那么您确实在PrimeFaces 6.1中使用了它?并查看PrimeFaces showcase。例如,然后也许您不需要commandlink,只需在图像上单击onclick=“…”,并使用oncomplete的相同内容即可
<h:form id="protocolForm">
  <p:dataTable id="ticketList" value="#{tickets}" var="ticket">
    <p:column headerText="Статус экспорта">
      <h:outputText value="#{ticket.exportStatus.caption}"/>
      <p:commandLink id="ticketErrorShowlink"
                     oncomplete="PF('exportError').show()">

         <h:graphicImage url="/images/shim.gif" style="border:0; vertical-align:center" width="5"/>
         <h:graphicImage id="headImageHelp" url="/images/mess_warning.gif" title="Ошибки экспорта"
                         style="border:0; vertical-align:bottom"/>
         <p:ajax listener="#{protocolForm.setErrors(ticket.errors)}" update=":protocolForm:ticketErrorPanelGroup"/>
      </p:commandLink>
   </p:column>
</p:dataTable>

// dialog down there
// data table
  <h:panelGroup id="ticketErrorPanelGroup">
    <p:dialog id="ticketErrorModalPanel" header="Ошибки экспорта" widgetVar="exportError">
        <f:facet name="controls">
            <h:outputLink id="phidelink" value="#hide" onclick="PF('exportError').hide();">
                <h:graphicImage value="/images/close.png" style="border:0; cursor:pointer;"/>
            </h:outputLink>
        </f:facet>

        <p:panelGrid columns="1" columnsWidth="540px">
            <h:outputText value="#{protocolForm.getErrors()}" escape="false" />
        </p:panelGrid>
        <p:commandLink id="closeLink" oncomplete="PF('exportError').hide()" value="Закрыть" />
    </p:dialog>
  </h:panelGroup>
</h:form>
public class ProtocolForm { 
   private String errors;

   // getter/setter
}