当我单击按钮时将列值发送到控制器时出现问题,始终选择网格的最后一行。我想发送选中的行。实际上,当我调用#{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>
答案 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属性映射到数组。
希望这有帮助。