0

私はこのデータテーブルを持っています:

<p:commandLink value="ajouter Ligne" update="lesarticles"                       
                        process="@this" actionListener="#{commandeMB.addLigne}" />

                    <p:dataTable   id="lesarticles" var="car" widgetVar="carsTable"
                    rowKey="#{car.ligneCommandeFournisseurId}" selectionMode="single"
                        selection="#{commandeMB.selectedLigneCommandeFournisseur}"
                        value="#{commandeMB.commande.ligneCommandeFournisseurs}" 

                        >

                        <p:column headerText="Numero">

                            <p:autoComplete id="art" required="true" var="p"
                                itemLabel="#{p.numero}" itemValue="#{p}" dropdown="true"
                                requiredMessage="Valeur requise" value="#{car.article}"
                                forceSelection="true" converter="#{articleConverter}"
                                completeMethod="#{commandeMB.completeArticle}">
                                <p:column>#{p.numero}</p:column>
                                <p:column>#{p.designation}</p:column>

                                <p:ajax event="itemSelect"  listener="#{commandeMB.handleSelect}" 
                                update="designation unite pu" />

                            </p:autoComplete>

                            <p:message for="art" display="text" />

                        </p:column>

                        <p:column headerText="designation">
                            <h:outputText id="designation"
                                value="#{car.article.designation}" />
                        </p:column>

                        <p:column headerText="unité">
                            <h:outputText id="unite"
                                value="#{car.article.unite.libelle}" />
                        </p:column>

                        <p:column headerText="PU">
                            <h:inputText id="pu" styleClass="monpu" 
                                value="#{car.PUAchat}" />
                        </p:column>

                        <p:column headerText="Quantité">
                            <h:inputText binding="#{qte}" styleClass="maqte" value="#{car.qte}"  >
                            </h:inputText>
                        </p:column>


                        <p:column headerText="Mt">
                            <h:outputText id="mt" styleClass="monmt"
                                value="#{car.mtLigne}" />
                        </p:column>

                    </p:dataTable>

ユーザーが1つの記事(英語の製品)を選択したときに(オートコンプリートを介して)、この選択に関係する行を検出して、マネージドBean側でいくつかの処理を行うことができます

コードでわかるように、次の方法で選択した記事を取得します。

    public void handleSelect(SelectEvent event){
    Article art = (Article) event.getObject();

}

しかし、データテーブルにこの新しい記事を含む行も取得したい

どうすればこれを達成できますか

前もって感謝します

4

2 に答える 2

1
<p:dataTable rowIndex="myIndex"/>

次に、次の方法でこの値をバインドできます。

<f:setPropertyActionListener target="#{bean.index}" value="#{myIndex}"/>

または;

<f:param name="myIndex" value="#{myIndex}"></f:param>

付属の値を取得できるようにするにはf:param:

Map<String, String> map = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        int index = Integer.parseInt(map.get("myIndex"));

p:commandLinkそれらを、p:commandButtonまたはに入れることができますp:ajax

于 2013-04-28T19:43:22.237 に答える
0

私はそれによってこの問題を解決しました:

<p:column headerText="Numero">

                        <p:autoComplete id="art" 
                            required="#{commandeMB.validation}" var="p"
                            itemLabel="#{p.numero}" itemValue="#{p}" dropdown="true"
                            requiredMessage="Valeur requise" value="#{car.article}"
                            forceSelection="true" converter="#{articleConverter}"
                            completeMethod="#{commandeMB.completeArticle}">
                            <p:column>#{p.numero}</p:column>
                            <p:column>#{p.designation}</p:column>

                            <p:ajax event="itemSelect" listener="#{commandeMB.handleSelect}"
                                update="designation unite pu mt" />

                        </p:autoComplete>



                        <p:message for="art" display="text" />

                    </p:column>

マネージド Bean では、次の方法で関連する行を取得します。

FacesContext context = FacesContext.getCurrentInstance();
    LigneCommandeFournisseur ligne_concernee = 
    context.getApplication().evaluateExpressionGet(context, "#{car}", LigneCommandeFournisseur.class);
于 2013-04-29T05:34:55.153 に答える