当前位置: 首页 > 知识库问答 >
问题:

获取行id dataTable primefaces

韩弘方
2023-03-14

我有一个类似于上面代码的数据表,如你所见,我使用事件RowSelected复选框,有没有办法知道单击的行,并根据该信息完全禁用该行?

 <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个答案

卢光誉
2023-03-14

可以使用Datatable的rowIndex属性。您可以在StyleClass中使用rowIndex,并在单击时绑定一个javascript方法。通过将具有rowIndex的类获取该行。

你也可以参考这个

Primefaces的例子

荆利
2023-03-14

我想这能满足你的要求。我在你的

假设如果你的

<h:form>
<p:dataTable id="tblTipoCarteraGeneric" styleClass="tblTipoCarteraGeneric" ......>
    <p:ajax event="rowSelectCheckbox" oncomplete="abcd()" />
    <p:ajax event="page" oncomplete="abcd()" />
    <p:ajax event="toggleSelect" oncomplete="abcd()" />

    <p:column></p:column>
    ..
    ..
    ..
    <p:column></p:column>
</p:dataTable>
<h:outputScript>var abcd = function(){

    $('div.tblTipoCarteraGeneric >div > table > tbody > tr').each(function(){
        if($(this).hasClass('ui-state-highlight')){
            $(this).css({'pointer-events': 'none'});
        } else {
        $(this).css({'pointer-events': 'auto'});
        }
    });
    };
</h:outputScript>
</form>

 类似资料:
  • 问题内容: 每当我使用该函数时,我都会以某种方式失去与其他值的所有连接,以便以后打印的行不再与我在其上最大运行的列相关。 所以我的表是: 所以如果我跑步 我会得到 因此,col3的最大值是正确的,但是没有获得该值的正确行。 我想要的是获取列的最大值并为每个用户返回该行。如果有多个最大值,即使它具有相同的用户标识,它也应返回所有用户。 问题答案: 其他数据库(例如MS SQL Server)不允许您

  • 问题内容: 为了下载文件,我正在创建一个urlopen对象(urllib2类)并分块读取它。 我想多次连接到服务器,并在六个不同的会话中下载文件。这样做,下载速度应该会更快。许多下载管理器都具有此功能。 我考虑过在每次会话中指定要下载的文件部分,并以某种方式在同一时间处理所有会话。我不确定如何实现这一目标。 问题答案: 听起来您想使用可用的HTTP Range 风格之一。 编辑 更新的链接以指向w

  • 我需要读取excel文件并突出显示重复的行,而不需要编辑excel或添加新的列/行。我使用读取excel文件,并使用读取所有重复行,但不包括'mark4'。问题是,我无法提取这些行号来与一起使用,以突出显示excel中的那些行,因为这些行不包括在DF中。 我试过,但由于没有唯一的行,所以无法提取数据。 的输出为: [6行x170列] 我需要提取那些不属于excel列的行号,并将它们作为列表用于将来

  • 问题内容: 所以, 问题 我对行乘法有问题。在SQL中,有一个函数可以计算一组行中某个字段的总和。我想得到乘法,即表 这将是作为一个结果。我正在使用 DOUBLE 数据类型来存储我的数据值。 我的方法 从学校数学知道,-可以用来创建所需的表达式,例如: -在这里您会看到此方法的弱点-由于何时未定义-我需要在计算整个表达式之前计算负号。该小提琴提供了示例数据和对此的查询。另一个缺点是,我们需要确定列

  • 问题内容: 我有以下查询: 如何检查是否有行,如何只返回第一行(如果有匹配项,则只能返回一行)? 问题答案: 使用 得到之一,正是一个结果。在所有其他情况下,它将引发你可以处理的异常: 还有,它将为你提供可能的第一个结果,而不会引发这些异常。但是,由于你要处理没有结果或超出你的想象的情况,因此正是你应该使用的方法。

  • 问题内容: 我想从桌子上得到一个特殊的结果,我想找出可能的结果!我有一个像这样的表:(idA,idB,val)通过此值: 我想通过以下格式从此表中进行选择: 怎么可能? 注意:我进行了一些搜索,但没有找到任何东西,如果您知道一个好的关键词,这对我很有用。 问题答案: 您可以尝试以下查询: 如果您不知道数量,则可以使用此动态查询: 输出: 看到这个SQLFiddle