0

私の dataTable は ajax 呼び出しによって入力されます。私の commandLink (datataable 内) は正しい場所を指しておらず、常に同じページをレンダリングします。コンソールに表示されます。 j_id1471051656_3ffdbfc6 は定義されていません

しかし、コマンドリンクをデータテーブルの外に置くと、アクションメソッドは正常に機能します。

この問題はめったにありません!どうすれば解決できますか?

前もって感謝します。

私の JSF ページ:

<h:form>
        <p:panel header="Busqueda">
            <p:panelGrid style="width:100%;">
                <p:row>
-----------------------------------(inputs)---------------------------------------
                    <p:column>
                        <p:commandButton value="Buscar" update="grilla"
                            action="#{devolucionAdminController.buscarSD()}">´
                            </p:commandButton>
                    </p:column>
                </p:row>
            </p:panelGrid>
            <p:messages closable="true" redisplay="true" id="msj"></p:messages>
        </p:panel>
        <p:dataTable id="grilla" var="r"
            value="#{devolucionAdminController.listado}"
            emptyMessage="No se han encontrado solicitudes de devolución">
            <p:column headerText="Sec">
                <h:outputText value="#{r.idSoliDevo}" />
            </p:column>
            <p:column headerText="Cuenta">
                <h:outputText value="#{r.cuentaId}" />
            </p:column>
            <p:column headerText="Ver Detalle Sol. Dev ">
                <p:commandLink 
                    action="#{bajaController.mostrarSolicitudBaja(r.cuentaId,r.idSoliDevo)}" ajax="false">
                    <p:commandButton icon="ui-icon-search" title="Ver Detalle" />
                </p:commandLink>
                </p:column>
        </p:dataTable>

<!--works fine  -->
    <p:commandLink action="#{bajaController.mostrarSolicitudBaja(80003,340)}"
            ajax="false">
            <p:commandButton icon="ui-icon-search" title="Ver Detalle" />
        </p:commandLink>
        </h:form>

私の最初のマネージド Bean:

@ManagedBean
@RequestScoped
public class DevolucionAdminController {
 List<TaSoliDevo> listado;
//getters and setters
........................
public void buscarSD() {

   .............................
}

私の 2 番目のマネージド Bean:

@ManagedBean
@RequestScoped
public class BajaController {

    public String mostrarSolicitudBaja(long cuentaId, long solicDevId) {
    .........................
    return "goResult";

}}
4

4 に答える 4

2

process="@this" を使用し、action の代わりに actionListener を使用します

<p:commandLink process="@this" actionListener="#{bajaController.mostrarSolicitudBaja(80003,340)}"></p:commandLink>
于 2013-10-11T05:28:09.710 に答える
0

commandLink を次のように置き換えます

<p:commandButton  icon="ui-icon-search" title="Ver Detalle"
action="#{bajaController.mostrarSolicitudBaja(r.cuentaId,r.idSoliDevo)}" ajax="false"/>

アイコンを配置するだけで、コマンド リンク内にコマンド ボタンを配置する必要はありません。

于 2013-10-11T06:41:52.727 に答える