Как отключить всю таблицу данных Primefaces - PullRequest
0 голосов
/ 23 мая 2018

Есть ли способ отключить все dataTable в Primefaces?Кто-то предложил использовать компонент editable, но это, похоже, не помогает.

#{conversionRatesBean.readOnlyUser} - это код, отфильтровывающий группу пользователей.

Я использую Primefaces 3.5 и JSF 2.1.6

Если не в Primefaces, может кто-нибудь предложить какие-то решения в jQuery?

<div class="grid_12 width_75_pc margin_left_auto" > 
    <div class="datatable">
        <p:dataTable editable="#{!conversionRatesBean.readOnlyUser}" id="conversionRateTable" var="row" value="#{conversionRatesBean.rowNames}" rowIndexVar="rowIdx" styleClass="projectTable table-container">
            <p:column headerText="" styleClass="#{rowIdx  == -1  ? 'itPanelGreen' : 'ui-widget-header'} textAlignCenter valign-middle width_20_pc column_name" >
                            <h:outputText value="1  #{row.name} =" />
            </p:column>
            <p:columns var="column" value="#{conversionRatesBean.colNames}" headerText="#{column.name}" columnIndexVar="colIdx"
                                    styleClass="#{rowIdx == colIdx ? 'itPanelGreen' : 'textAlignCenter'}">
                  <input:decimalField beanValue="#{conversionRatesBean.conversionMap[row][column].conversionValue}"
                      errorMsg="#{msgs['errorInvalidValue']}"
                      rendered="#{rowIdx != colIdx}"
                      decimalFields="4"
                      errorDecimal="#{msgs['packaging.error.number.decimals']}"
                      styleClass="textAlignRight "
                      maxLength="9"/>
            </p:columns>
        </p:dataTable>
    </div>
</div>
<div class="actions grid_12 alpha">
        <p:commandButton id="saveBtn" value="Save" update="conversionRateTable"
            action="#{conversionRatesBean.save}"
            oncomplete = "qt.removeSavedState();"
            disabled="#{conversionRatesBean.readOnlyUser}"
            styleClass="js-saveButton button" onstart="screenUtils.triggerRequired(); if(screenUtils.errorsOnPage()){return false;}"/>

        <pretty:link mappingId="rateSelection" styleClass="displayInlineBlock margin_top_5">
            <f:param value="#{conversionRatesBean.rateId}" />
            <h:outputText value="#{msgs.backtoOverView}" styleClass="linky margin_left_10" />
        </pretty:link>
</div>

1 Ответ

0 голосов
/ 26 мая 2018

Мне удалось решить проблему следующим образом:

Добавлена ​​следующая строка кода на странице decimalField.xhtml, которая по сути являлась составной реализацией для тега ввода.

<composite:interface>
   <composite:attribute name="disabled" default="#{false}"/>
</composite:interface>

После этого со страницы использования conversionRates.xhtml вызывается составной атрибут, как показано ниже:

<input:decimalField disabled="#{conversionRatesBean.readOnlyUser}"/>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...