2016-06-02 4 views
0

Как отменить выделенную строку на сетях dataTable, используя только щелчок, так же, как она работает, чтобы выбрать строку.Первичные данные datatable unselect row on click with multiple selection

Это код, я использую, чтобы выбрать и отмените на данный момент, но отмените нужно нажать клавишу Ctrl или CMD (на Mac).

<p:dataTable 
    value="#{adminiClubReconManager.bankMovementsFound}" var="movs" 
    style="width:90%;border: 0px;" 
    selection="#{adminiClubReconManager.selectedBankMovement}" 
    rowKey="#{movs.id}" editable="true" styleClass="rowStyle" 
    paginator="true" rowsPerPageTemplate="5,10,15" rows="10" 
    selectionMode="mutiple" 
    paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"> 
    <p:ajax event="rowSelect" 
     listener="#{adminiClubReconManager.onBankRowSelect()}" 
     update="@form:reconMessages" /> 
    <p:ajax event="rowUnselect" 
     listener="#{adminiClubReconManager.onBankRowUnselect()}" 
     update="@form:reconMessages" /> 
    <p:column 
     style="background:transparent;border:0px;text-align:left"> 
     <c:facet name="header"> 
      <h:outputText 
       value="#{msg['admini.common.movement.recon.number']}" /> 
     </c:facet> 
     <h:outputText value="#{movs.id}" 
      style="background:transparent;border:0px" /> 
    </p:column> 
    ... 
</p:dataTable> 
+0

AFAIK, есть атрибут объявления для этого. Проверьте документы – Kukeltje

+2

'rowSelectMode'. Давать значение «добавить» может привести к тому, что вы хотите. – Kukeltje

+0

Что вы подразумеваете под этим значением «добавить»? как и где это сделать »на p: ajax? –

ответ

-1

У нас есть 2 возможности для решения этой проблемы.

Первый

Создать CommandButton и вызвать primefaces метод unselectAllRows();

<p:dataTable id="dataTableId" var="p" value="#{myBean.dataModel}" paginator="true" rows="50" paginatorPosition="bottom" emptyMessage="Empty results" rowKey="#{p.attribute}" selection="#{myBean.atributeList}" widgetVar="dataTableWidgetVar">` 
    <p:commandButton widgetVar="buttonClear" value="Clear selection" onclick="dataTableWidgetVar.unselectAllRows();"/> 
</p:dataTable> 

После щелчка у вас есть строки

снят

Второй

Via ajaxEvent unselectAllRows метод primefaces вызова();

<p:dataTable id="dataTableId" var="p" value="#{myBean.dataModel}"                              paginator="true" rows="50" paginatorPosition="bottom" emptyMessage="Empty results" rowKey="#{p.attribute}" selection="#{myBean.atributeList}" widgetVar="dataTableWidgetVar">` 
    <p:ajax event="page" update="dataTableId" oncomplete="dataTableWidgetVar.unselectAllRows();"/> 
... 
</p:dataTable> 

В этом случае вы выбрали данные первой страницы при нажатии кнопки на другую страницу, например, страницы 3, Аякс выполнить метод UnselectAllRows(); И вы очистили, что выбрали.

Для решения этой проблемы я finded этого материала на форуме primefaces в: https://forum.primefaces.org/viewtopic.php?f=3&t=24144

+0

Прочтите последний комментарий к вопрос пожалуйста. Является ли поведение в соответствии с вашим ответом тем, что там описано? – Kukeltje

Смежные вопросы