0

JSF2 についてあなたの助けが必要です。データベースからデータ項目をリストするデータテーブルを作成しました。そのリストから項目を選択し、編集ダイアログに印刷したいと考えています。問題は、アイテムのデータがそのダイアログに表示されないことです。これを生成するために使用される JSF コードは次のとおりです。

<p:dataTable value="#{airportController.items}" var="item" style="border: 0px;">
    <f:facet name="header">Airports</f:facet>
    <p:column>
        <f:facet name="header">ID</f:facet>
        <h:outputText value="#{item.airportId}"/>
    </p:column>

    <p:column>
        <f:facet name="header"></f:facet>
        <p:commandButton title="View" value="" update=":airportForm:airportEditForm" icon="edit_icon.gif"oncomplete="editAirportDlg.show();">
            <f:setPropertyActionListener value="#{item}" target="#{airportController.selected}"/>
        </p:commandButton>
    </p:column>
    <p:commandButton value="Ajouter" onclick="createAirportDgl.show();"/>    
</p:dataTable>

<p:dialog id="airportEditForm" widgetVar="editAirportDlg" modal="false"  header="Modifier" rendered="true" resizable="false">
    <h:panelGrid id="airportDisplay" columns="2" paginator="true" rows="10" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"   rowsPerPageTemplate="5,10,15">
        <h:outputText value="Pays"/>
        <p:inputText value="#{airportController.selected.country}"/>
        <h:outputText value="Ville"/>
        <p:inputText value="#{airportController.selected.city}"/>
        <h:outputText value="Nom"/>
        <p:inputText value="#{airportController.selected.name}"/>
        <h:outputText value="Addresse"/>
        <p:inputText value="#{airportController.selected.hqAddress}"/>
        <p:commandButton value="Valider" action="#{airportController.update()}"/>
    </h:panelGrid>
</p:dialog>

すべてが index.xhtml ページにまとめられています。何を間違えたのかわからない。

4

3 に答える 3

0

xhtml コンテンツ全体を送っていただけますか? これは検証の問題である可能性があります。commandButton で process="@this" を使用して、airportDisplay を更新してみてください。

<p:commandButton title="View" value=""
    update=":airportForm:airportDisplay"
    icon="edit_icon.gif"oncomplete="editAirportDlg.show();" process="@this">
    <f:setPropertyActionListener value="#{item}" target="#{airportController.selected}"/> 
</p:commandButton>
于 2013-05-23T01:23:46.503 に答える
0

助けてくれてありがとう、これがページの内容です、

index.xhtml

<ui:define name="title">
    Airports
</ui:define>

<ui:define name="header">
    header
</ui:define>

<ui:define name="menu">
    menu
</ui:define>

<ui:define name="content">
    <h:form id="airportForm">
        <ui:include src="list.xhtml"/>
        <ui:include src="edit.xhtml"/>
        <ui:include src="create.xhtml"/>
    </h:form>
</ui:define> </ui:composition>

list.xhtml

<p:dataTable value="#{airportController.items}" var="item" style="border: 0px;" >paginator="true"
             rowKey="#{item.airportId}" selection="#{airportController.selected}" >selectionMode="single"

sortBy="#{item.airportId}"> 空港 ID Nom Pays Ville Addesse onclick="editAirportDlg.show();"/>

update=":airportForm:airportCreateForm" onclick="createAirportDgl.show();"/>

edit.xhtml

<p:dialog widgetVar="editAirportDlg" modal="false" 
          header="Modifier" rendered="true" resizable="false">
    <h:form id="airportEditForm">
    <h:panelGrid columns="2">
        <h:outputText value="Pays :"/>
        <p:inputText value="#{airportController.selected.country}"/>
        <h:outputText value="Ville: "/>
        <p:inputText value="#{airportController.selected.city}"/>
        <h:outputText value="Nom: "/>
        <p:inputText value="#{airportController.selected.name}"/>
        <h:outputText value="Addresse: "/>
        <p:inputText value="#{airportController.selected.hqAddress}"/>
        <f:facet name="footer">
            <p:commandButton value="Valider" icon="ui-icon-disk" action=" {airportController.update()}"/>
        </f:facet>
    </h:panelGrid>
    </h:form>
</p:dialog> </ui:composition>
于 2013-05-23T21:28:27.460 に答える
0

すべてを入れてみてください。つまり、あなたdatatabledialog内部h:formにIDを付けてから

編集ボタンをクリックして、以下に示すようにグリッド ID に関してダイアログを更新:form:airportDisplayします。

<h:form id="form">

    <p:growl id="growl" showDetail="true" life="3000"/>  


    <p:dataTable value="#{airportController.items}" var="item" style="border: 0px;">
    <f:facet name="header">Airports</f:facet>
    <p:column>
        <f:facet name="header">ID</f:facet>
        <h:outputText value="#{item.airportId}"/>
    </p:column>

    <p:column>
        <f:facet name="header"></f:facet>
        <p:commandButton title="View" value="" update=":form:airportDisplay" icon="edit_icon.gif"oncomplete="editAirportDlg.show();">
            <f:setPropertyActionListener value="#{item}" target="#{airportController.selected}"/>
        </p:commandButton>
    </p:column>
    <p:commandButton value="Ajouter" onclick="createAirportDgl.show();"/>    
</p:dataTable>


    <p:dialog id="airportEditForm" widgetVar="editAirportDlg" modal="false"  header="Modifier" rendered="true" resizable="false">
    <h:panelGrid id="airportDisplay" columns="2" paginator="true" rows="10" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"   rowsPerPageTemplate="5,10,15">
        <h:outputText value="Pays"/>
        <p:inputText value="#{airportController.selected.country}"/>
        <h:outputText value="Ville"/>
        <p:inputText value="#{airportController.selected.city}"/>
        <h:outputText value="Nom"/>
        <p:inputText value="#{airportController.selected.name}"/>
        <h:outputText value="Addresse"/>
        <p:inputText value="#{airportController.selected.hqAddress}"/>
        <p:commandButton value="Valider" action="#{airportController.update()}"/>
    </h:panelGrid>
</p:dialog>     



        </h:form>
于 2013-05-23T07:29:53.550 に答える