1

データテーブルがあり、ユーザーが現在の行のすぐ下に行を挿入できるリンクがあります。これにより、番号付けが更新されます。

新しい行を作成し、番号を入力して、下のすべての行の番号付けに 1 を追加すると、一度完全に機能します。

他のものをクリックすると、ajax リクエストが完了したように見えますが、何も起こりません。

#{table} 変数を使用して UIData 要素の行インデックスを取得していることがわかります。commandLink で process="@form" と process="@this" を使用しようとしましたが、残念ながら役に立ちませんでした。同様に、私のメソッドは void を返していたので、null 文字列を返すように設定しましたが、同じ結果が発生しました。

XHTML

<h:form id="feForm">
   <p:dataTable value="#{fichaExpandidaBean.feFlujoNormalList}" binding="#{table}" var="fn">
      <p:column headerText="Paso:">
         <h:outputText value="#{fn.orden}-"/>
      </p:column>
      <p:column headerText="Descripcion:">
         <h:inputText value="#{fn.descripcion}" style="width:98%;"/>
      </p:column>
      <p:column headerText="Acciones">
         <p:commandLink style="margin: 5px;" action="#{fichaExpandidaBean.agregarFilaFlujoNormal(table.rowIndex)}" update="@form">
            <h:graphicImage title="Agregar fila abajo." value="/resources/imagenes/agregarFila.png" alt="AgregarFila"/>
         </p:commandLink>
      </p:column>
   </p:dataTable> 
</h:form>

豆:

@Named(value = "fichaExpandidaBean")
@ConversationScoped
public class FichaExpandidaBean implements Serializable {

@Inject
    private Conversation conversation;
...etc...

public String agregarFilaFlujoNormal(int row){

        FeFlujonormal fn = new FeFlujonormal();
        fn.setOrden(row + 2);
        feFlujoNormalList.add(row + 1, fn);

        for(int i = row + 2; i < feFlujoNormalList.size(); i++){

            FeFlujonormal feTemp = feFlujoNormalList.get(i);
            feTemp.setOrden(feTemp.getOrden()+1);
        }

        return null;
    }

編集: Primefaces の問題ではないと思います。次のコードで同じ結果が得られます。

<h:dataTable value="#{fichaExpandidaBean.feFlujoNormalList}" binding="#{table}" var="fn">
     <h:column>
        <f:facet name="header">Paso</f:facet>
        <h:outputText value="#{fn.orden}-"/>
     </h:column>
     <h:column>
        <f:facet name="header">Descripcion</f:facet>
        <h:inputText value="#{fn.descripcion}" style="width:98%;"/>
     </h:column>
     <h:column>
        <f:facet name="header">Acciones</f:facet>
        <h:commandLink style="margin: 5px;" action="#{fichaExpandidaBean.agregarFilaFlujoNormal(table.rowIndex)}">
           <f:ajax render="@form"/>
           <h:graphicImage title="Agregar fila abajo." value="/resources/imagenes/agregarFila.png" alt="AgregarFila"/>
        </h:commandLink>
     </h:column>
 </h:dataTable>
4

0 に答える 0