当前位置: 首页 > 知识库问答 >
问题:

Primefaces对话框不显示值

亢保赫
2023-03-14

嗨,我是primefaces的新手,我对数据表中显示的值有一些问题。我从sql数据库加载数据,并在dataTable中显示这些数据。有一个柱子叫做“评论”,里面有一个按钮。如果你点击这个按钮,就会打开一个对话框。在这个对话框框架内,也应该有一些与我在dataTable中显示的相同的值,但它不起作用。我无法显示该对话框框中的值。我在谷歌上搜索了很多次,也尝试了很多次,但都无济于事。下面是xhtml:

<h:body>
    <h:form>
        <p:dataTable value="#{gutachtenBean.daten}" var="auftrag"
            rowKey="#{gutachtenBean.daten}" selectionMode="multiple">

            <f:facet name="header">
                <p:outputPanel>
                    <h:outputText value="Vorgangsliste"
                        style="position:relative; top: 4px; float:left;  font-size:14px" />
                    <h:outputText value="Search all fields:" style="margin-right:10px" />
                    <p:inputText style="width:150px" placeholder="Enter keyword" />
                </p:outputPanel>
            </f:facet>

            <p:column style="text-align:center"
                filterBy="#{auftrag.schadennummer}" headerText="Schadennummer"
                filterMatchMode="contains">
                #{auftrag.schadennummer}
            </p:column>

            <p:column style="width:150px;text-align:center"
                filterBy="#{auftrag.vorgangsnummer}" headerText="Vorgangsnummer"
                filterMatchMode="contains">
                #{auftrag.vorgangsnummer}
            </p:column>

            <p:column style="width:120px;text-align:center"
                filterBy="#{auftrag.kennzeichen}" headerText="Kennzeichen"
                filterMatchMode="contains">
                #{auftrag.kennzeichen}
            </p:column>

            <p:column style="width:100px;text-align:center"
                filterBy="#{auftrag.kennzeichen}" headerText="Organisation">
                <f:facet name="filter">
                    <p:selectOneMenu>
                        <f:selectItem itemLabel="Select One" />
                        <f:selectItems value="#{dtFilterView.brands}" />
                    </p:selectOneMenu>
                </f:facet>
            </p:column>

            <p:column style="width:220px;text-align:center"
                filterBy="#{auftrag.status}" headerText="Status"
                filterMatchMode="contains">
                #{auftrag.status}
            </p:column>

            <p:column headerText="SLA-Beginn"
                style="width:130px;text-align:center">
            </p:column>

            <p:column headerText="SLA-Laufzeit"
                style="width:130px;text-align:center">
            </p:column>

            <p:column headerText="SLA-Überschreitung"
                style="width:130px;text-align:center">
            </p:column>

            <p:column filterBy="#{auftrag.kennzeichen}"
                style="width:100px;text-align:center" headerText="Ampel">
                <f:facet name="filter">
                    <p:selectOneMenu>
                        <f:selectItem itemLabel="Select One" />
                        <f:selectItems value="#{dtFilterView.brands}" />
                    </p:selectOneMenu>
                </f:facet>
            </p:column>

            <p:column headerText="Kommentare"
                style="width:100px;text-align:center">
                <p:commandButton styleClass="viewbutton"
                    style="border-left:1px solid #666; height:20px;font-size:10px"
                    value="Open" type="button" onclick="PF('dlg1').show();" />
            </p:column>
        </p:dataTable>
        <p:commandButton styleClass="viewbutton" value="View"
            icon="ui-icon-search"
            style="border-left:1px solid #666;margin-top:10px"></p:commandButton>
    </h:form>
    <p:dialog header="Kommentar" widgetVar="dlg1" height="600px"
        width="900px">
        <h:form>
            <h:outputText value="#{auftrag.kommentar}"/>
        </h:form> 
    </p:dialog>
</h:body>

这是我的豆子:

@ManagedBean(name="gutachtenBean")
@SessionScoped
public class GutachtenController implements Serializable{

    private static final long serialVersionUID = 8410541973590420821L;

    private DatabaseConnector connector = new DatabaseConnector();
    private List<GutachtenDaten> daten;

    public GutachtenController(){
        daten = connector.getAuftragsDaten();
    }

    public List<GutachtenDaten> getDaten() {
        return daten;
    }

    public void setDaten(List<GutachtenDaten> daten) {
        this.daten = daten;
    }
}


public class GutachtenDaten {

    private String schadennummer;
    private String kennzeichen;
    private String status;
    private String vorgangsnummer;
    private String kommentar;

    public String getSchadennummer() {
        return schadennummer;
    }

    public void setSchadennummer(String schadennummer) {
        this.schadennummer = schadennummer;
    }

    public String getKennzeichen() {
        return kennzeichen;
    }

    public void setKennzeichen(String kennzeichen) {
        this.kennzeichen = kennzeichen;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getVorgangsnummer() {
        return vorgangsnummer;
    }

    public void setVorgangsnummer(String vorgangsnummer) {
        this.vorgangsnummer = vorgangsnummer;
    }

    public String getKommentar() {
        return kommentar;
    }

    public void setKommentar(String kommentar) {
        this.kommentar = kommentar;
    }

}

我不明白为什么对话框中没有显示这些值。拜托谁来帮帮忙!

共有1个答案

邹英悟
2023-03-14

#{auftrag}仅在渲染期间在表内可用。单击按钮时,必须将所选行放入bean变量中,并在对话框中显示
将类似的内容添加到GutachtenController

private GutachtenDaten selectedGD;

public GutachtenDaten getSelectedGD() {
    return this.selectedGD;
}

public void setSelectedGD(GutachtenDaten gd) {
    this.selectedGD = gd;
}

public void initSelectedGD(GutachtenDaten gd) {
    setSelectedGD(gd);
}

Kommentare按钮更改为

<p:commandButton styleClass="viewbutton"
                 style="border-left:1px solid #666; height:20px;font-size:10px"
                 value="Open" type="button" oncomplete="PF('dlg1').show();" 
                 actionListener="#{gutachtenBean.initSelectedGD(auftrag)}" update="@widgetVar(dlg1)"/>

并将对话框更改为

<p:dialog header="Kommentar" widgetVar="dlg1" height="600px"
    width="900px">
    <h:form>
        <h:outputText value="#{gutachtenBean.selectedGD.kommentar}"/>
    </h:form> 
</p:dialog>
 类似资料:
  • 我在对话框中遇到WebView的问题。我尝试过许多不同的技巧,但都没有奏效。所以,我的问题是我无法在自定义对话框中加载WebView。它打开对话框,不会给出任何错误,但对话框不会“填充”web视图。它只是显示一个对话框的标题。 AlertDialog.Builder确实在对话框中打开webview,但单击输入字段时不会打开键盘。如果我打开键盘,它会出现在对话框后面。(这似乎是众所周知的bug...

  • 在Netbeans中,我创建了一个GUI项目,该项目使用框架前端,我可以添加组件并双击以编辑其事件。我指的是有“源”、“设计”和“历史”选项卡的窗口。 以下是组件和关系: 1-打开文件选择器的按钮。 2-显示文件选择器结果的文本区域。如果用户选择一个文件,它将在文本区域显示文件名;否则它会写“被用户取消”。 3-同时,如果用户选择了一个文件,我想打开一个“please wait”(请等待)对话框,

  • 测试电话上的应用程序设置中接受存储的所有权限。App已经被清除了两次数据,以及卸载和重新安装。 最初在此称为: 当然这里需要权限。请注意“permissions!=1”vs“permissions!=PackageManager.Permission_Granted”,否则将不会运行到RequestPermissions中: 权限变量如下:

  • 我们在WebLogic11g下使用JSF2.1+PrimeFaces6.0+PrimeFaces-Extensions6.0.0、mojarra 2.1.7。 单击p:commandButton后,DOM inspector显示对话框已在正文和html标记之外创建,如下一个图像所示: 在正文外部呈现的对话框 如果我们使用相同的代码(没有帧)创建一个新的.xhtml,并单击p:commandButt

  • 问题内容: 我正在使用primefaces 3.3.1和JSF 2(Mojarra 2.1.9)。 我有一个包含DataTable组件和Dialog的页面,以显示DataTable条目的详细信息。当我有一个对话框时,这非常简单。我要尝试允许用户同时打开两个或三个带有不同条目详细信息的dailog。有人知道如何从服务器获取整个AJAX对话框,而不仅仅是对话框内容吗? 问题答案: 是的,我做到了。为此