如何将行的属性值发送到p:confirmDialog?

时间:2014-02-10 17:24:49

标签: jsf jsf-2 primefaces

当我单击按钮时将列值发送到控制器时出现问题,始终选择网格的最后一行。我想发送选中的行。实际上,当我调用#{lst.usuario}方法时,总是从数据表中选择最后一个cambioDeClave()值。

我该如何解决? 提前谢谢。

<p:dataTable id="tabla" var="lst" styleClass="myTable"
             paginatorAlwaysVisible="false"
             style="word-break:normal; width:600px;letter-spacing:-0.5px;"
             sortMode="multiple"
             value="#{busquedaUsuariosController.listado}" paginator="true"
             rows="20" .................>

    <p:column headerText="CLAVE" width="48">

        <p:commandButton onclick="confirmacionClave.show()" style="width:40px;"
                         type="button" value="#{lst.usuario}" />

        <p:confirmDialog message="¿Está seguro que desea generar una nueva clave para el usuario? #{lst.usuario}"
                         showEffect="bounce" hideEffect="explode" severity="alert"
                         widgetVar="confirmacionClave">

            <p:commandButton value="Aceptar" update="@form"
                             oncomplete="confirmacionClave.hide()"
                             action="#{busquedaUsuariosController.cambioDeClave(lst.usuario)}" >
            </p:commandButton>

            <p:commandButton value="Cancelar" onclick="confirmacionClave.hide()"
                             type="button" />
        </p:confirmDialog>
    </p:column>
</p:dataTable>

1 个答案:

答案 0 :(得分:0)

您可以使用p:datatable的selection属性。此选择属性映射到您的托管bean属性,如下所示。

  <p:dataTable id="tabla" var="lst" styleClass="myTable" 
                paginatorAlwaysVisible="false" 
                selection="#{busquedaUsuariosController.selectedObject}"............>  your 

你的托管bean应该有这样的属性

          BusquedaUsuariosController {  
             Type selectedObject //donno what is ur object type here o 

        }    

你必须提到你的selectionMode =“单/多”。如果您的selectionMode是多个,那么您应该将datatable的selection属性映射到数组。

希望这有帮助。