获取行id dataTable primefaces

时间:2013-09-26 22:30:23

标签: jsf jsf-2 primefaces datatable

我有一个类似于上面代码的dataTable,正如你所看到的,我使用事件rowSelectedcheckBox,有没有办法知道被点击的行,并根据该信息完全禁用该行?

 <p:dataTable id="tblTipoCarteraGeneric" style="text-align:left;" 
                     value="#{alertasPredefinidasModel.tipoCarteraDTOs}"
                     var="tipoCartera"
                     rows="15" paginator="true"
                     emptyMessage="empty"
                     paginatorAlwaysVisible="true" 
                     paginatorPosition="bottom"                         
                     selection="#{alertasPredefinidasModel.elementoSeleccionado.tipoCarteraDTOs}"
                     rowKey="#{tipoCartera.tipoCarteraDTO.tipocarteraID}"
                     rendered="#{alertasPredefinidasModel.isTipoCartera()}">

            <p:ajax event="rowSelectCheckbox" update=":form:tblTipoCarteraGeneric, :form:messages" 
                    listener="#{alertasPredefinidasController.onRowSelected}"/>
            <p:ajax event="rowUnselectCheckbox" update=":form:tblTipoCarteraGeneric, :form:messages" 
                    listener="#{alertasPredefinidasController.onRowUnselected}"/>

            <p:column selectionMode="multiple" styleClass="selection-column no-all"
                      disabledSelection="#{alertasPredefinidasModel.modoDetalle}"/>

            <p:column headerText="Tipo de cartera" styleClass="wrappedText" >
                <h:outputText id="inTxtCol1" value="#{tipoCartera.tipoCarteraDTO.nombre}" />
            </p:column>
            <p:column headerText="Valor del abono" styleClass="wrappedText" rendered="#{alertasPredefinidasModel.isTipoCarteraConValorOpcion2()}">
                <h:inputText id="inTxtCol2" value="#{tipoCartera.parametro1}" style="width:100%" 
                             disabled="#{alertasPredefinidasModel.modoDetalle}"/>
                <pe:tooltip myPosition="top center" atPosition="bottom right" for="inTxtCol2"                                       
                            value="#{tooltips.obtainToolTip('parametrizarAlertasPredefinidas', 'inTxtCol2', 'es', 'itac.SIT-Core-Middleware-Sarlaft-WAR.tooltip')} "/>
            </p:column>
            <p:column headerText="Porcentaje superior al valor del abono" styleClass="wrappedText" rendered="#{alertasPredefinidasModel.isTipoCarteraConValorOpcion2()}">
                <h:inputText id="inTxtCol3" value="#{tipoCartera.parametro2}" style="width:100%" 
                             disabled="#{alertasPredefinidasModel.modoDetalle}"/>
                <pe:tooltip myPosition="top center" atPosition="bottom right" for="inTxtCol3"                                       
                            value="#{tooltips.obtainToolTip('parametrizarAlertasPredefinidas', 'inTxtCol3', 'es', 'itac.SIT-Core-Middleware-Sarlaft-WAR.tooltip')} "/>
            </p:column>
        </p:dataTable>

2 个答案:

答案 0 :(得分:1)

我认为这将满足您的要求。我向您的styleClass="tblTipoCarteraGeneric"添加了一个额外的属性<p:dataTable>,并添加了两个<p:ajax>与事件page(因为在页面更改后,以保持上一页的用户交互记录相同)和{{ 1}}(如果用户选择标题复选框而不是使用每行的单个chek框)。

假设您的toggleSelect包装如下:

<p:dataTable>

答案 1 :(得分:-1)

您可以使用Datatable的rowIndex属性。您可以在StyleClass中使用rowIndex,并在单击时调用javascript方法。获取将包含rowIndex的类的行。

你也可以参考这个

Primefaces example