禁用数据表中的选择

时间:2016-08-29 09:16:30

标签: jsf jsf-2 primefaces jsf-2.2

我正在使用Primefaces 5.3,如果记录长度低于10,我正在用数据库中的一些记录填充数据表我用空记录完成它,所以数据总是叠加10行。

我的数据表看起来像这样:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
  <div class="page-header">
  </div>
  <div class="row">
    <div class="col-md-6">

      <div class="panel panel-primary">
        <div class="panel-leftheading">
          <h3 class="panel-lefttitle">Panel title</h3>
        </div>
        <div class="panel-rightbody">
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
            irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
            irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

        </div>
        <div class="clearfix">
        </div>
      </div>

    </div>
  </div>

所以我想要的是禁用对具有空记录的行的选择。

我该怎么做?

PS:<p:dataTable id="dataTable" editable="true" editMode="cell" value="#{beanPlanningl.getListPlanningSalle(entry, 1)}" var="planning" selectionMode="single" selection="#{beanPlanning.selectedPlanning}" rowKey="#{planning.id}" sortBy="#{planning.heureDebut}" > 在空记录中等于0。

编辑:

我忘了提到我已经使用planning.id如下:

rendered

但这只能阻止编辑单元格,但始终可以选择它们。

编辑2:

我尝试使用<p:column > <p:cellEditor rendered="#{planning.id != 0}"> <f:facet name="output"> <h:outputText value="#{planning.heureDebut}" /></f:facet> <f:facet name="input"> <p:inputMask mask="99:99" value="#{planning.heureDebut}" required="true" maxlength="4" requiredMessage="Heure de début : vous devez indiquer une valeur." validatorMessage="Heure de début non valide."> <f:validateRegex pattern="([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"/> </p:inputMask> </f:facet> </p:cellEditor> </p:column> 现在我无法选择行,但在使用disabledSelection之前总是可以选择单元格:

enter image description here

你可以看到我可以选择行,并且在悬停时它们会变色。

然后当我使用disabledSelection时:

enter image description here

现在悬停对于空行和行上的选择都不起作用,但是总是可以选择单元格,所以不需要我只需要防止它出现。

我注意到,当选择单元格时,会添加两个css类:disabledSelection

1 个答案:

答案 0 :(得分:0)

我所做的解决方案是防止列中没有.ui-cell-editor的列的默认行为如下:

$(".ui-editable-column").click(function(event){
                    if(!$(this).find('.ui-cell-editor').length){
                        event.preventDefault();
                        return false;   
                    }
            });
相关问题