可编辑的对话框主界面



我从素数开始,我正在尝试为我的数据表创建一个可编辑的对话框。当我点击编辑按钮(数据表的页脚)时,会出现对话框,但不显示所选行的值。怎么了?

我的 XHTML 文件:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <body>
        <ui:composition template="./../WEB-INF/template_sistema.xhtml">
            <ui:define name="content">
                <h:form prependId="false">  
                    <p:dataTable id="dataTable" var="resultadoBanescap" value="#{lstResultados.resultadoBanescap}"  
                                 paginator="true" rows="10"  
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                 rowsPerPageTemplate="5,10,15,20"
                                 emptyMessage="Não foram encontradas informações"
                                 selection="#{resultadoBanescap.selecionado}" selectionMode="single">  
                        <p:column id="colunaNumero" 
                                  filterBy="#{resultadoBanescap.rbcnr}" 
                                  sortBy="#{resultadoBanescap.rbcnr}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Número" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.rbcnr}" />  
                        </p:column>  
                        <p:column id="colunaDia" 
                                  filterBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcdd}" 
                                  sortBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcdd}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Dia" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.tbResultadoBanescapPK.rbcdd}" />  
                        </p:column>  
                        <p:column id="colunaMes" 
                                  filterBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcmm}" 
                                  sortBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcmm}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Mês" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.tbResultadoBanescapPK.rbcmm}" />  
                        </p:column>  
                        <p:column id="colunaAno" 
                                  filterBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcaa}" 
                                  sortBy="#{resultadoBanescap.tbResultadoBanescapPK.rbcaa}" 
                                  filterMatchMode="contains">  
                            <f:facet name="header">  
                                <h:outputText value="Ano" />  
                            </f:facet>  
                            <h:outputText value="#{resultadoBanescap.tbResultadoBanescapPK.rbcaa}" />  
                        </p:column> 
                        <f:facet name="footer">  
                            <p:commandButton id="viewButton" 
                                             value="View"  
                                             update=":form:dataTable" 
                                             oncomplete="detalheDialog.show()"
                                             onclick="detalheDialog.show()"/>  
                        </f:facet> 
                    </p:dataTable>  
                    <p:dialog id="dialog" header="Detalhes" widgetVar="detalheDialog" resizable="false"  
                              width="300" showEffect="clip" hideEffect="clip" modal="true" appendToBody="true">  
                        <h:form id="frmUpdate">
                            <h:panelGrid id="display" columns="2" cellpadding="4">  
                                <h:outputText value="Número:" />  
                                <h:inputText value="#{lstResultados.selecionado.rbcnr}" />  
                                <h:outputText value="Dia:" />  
                                <h:inputText value="#{lstResultados.selecionado.tbResultadoBanescapPK.rbcdd}" />  
                                <h:outputText value="Mês:" />  
                                <h:inputText value="#{lstResultados.selecionado.tbResultadoBanescapPK.rbcmm}" />  
                                <h:outputText value="Ano:" />  
                                <h:inputText value="#{lstResultados.selecionado.tbResultadoBanescapPK.rbcaa}" />  
                            </h:panelGrid>  
                        </h:form>
                    </p:dialog>  
                </h:form>  
            </ui:define>
        </ui:composition>
    </body>
</html>

我的豆子文件:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.banestes.ui.bean;
import br.com.banestes.domain.TbResultadoBanescap;
import br.com.banestes.domain.controller.TbResultadoBanescapJpaController;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
/**
 *
 * @author 030072182
 */
@RequestScoped
@ManagedBean(name = "lstResultados")
public class ListResultados {
    private List<TbResultadoBanescap> resultadoBanescap;
    private TbResultadoBanescap selecionado;
    public ListResultados() {
        TbResultadoBanescapJpaController ctrl = new TbResultadoBanescapJpaController();
        resultadoBanescap = ctrl.findTbResultadoBanescapEntities();
    }
    public List<TbResultadoBanescap> getResultadoBanescap()
    {
        return resultadoBanescap;
    }
    public TbResultadoBanescap getSelecionado() {
        return selecionado;
    }
    public void setSelecionado(TbResultadoBanescap selecionado) {
        this.selecionado = selecionado;
    }

}
另一个

问题是:是否可以在另一个 xhtml 中创建一个表单并在对话框中使用 he?

几件事:

  1. 所选行不会显示在对话框中,因为单击页脚中的按钮时对话框不会更新。您的更新应update=":form:dataTable :dialog"
  2. 除非您对数据表上的数据执行某些操作(我在您的代码中看不到它),否则您也应该从更新中删除:form:dataTable
  3. 在您的<p:dataTable>中,您将所选数据放入resultadoBanescap.selecionado中。但是,在对话框中,您正在从lstResultados.selecionado读取数据。检查逻辑。
  4. 您应该将对话框从第一种形式中取出。
  5. 是的,可以在另一个 xhtml 文件中创建一个表单,然后使用 <ui:include> 将其添加到对话框中。

相关内容

  • 没有找到相关文章

最新更新