Отключение определенной строки в IceFace с данными

У меня есть экран, на котором отображаются определенные данные. Я использую опцию datatable для отображения данных и выбора строки для выбора строки. Если я выберу какую-либо строку, появится какая-то опция, через которую пользователь сможет манипулировать данными (например, редактировать и удалять), но я хочу, чтобы некоторые данные не редактировались.

У меня есть экран, на котором я показываю данные по месяцам, например, если текущий месяц август, то на моей странице будут отображаться данные за предыдущие два месяца и данные за следующие 10 месяцев.

Теперь я хочу, чтобы данные за последние месяцы и предыдущие два месяца были недоступны для редактирования или отключены при выборе строки с помощью выбора строк. введите описание изображения здесь

Ниже приведена функция просмотра страницы и выбора строк:

 <i:dataTable id="ConfigurationOne"
            headerClass="dataTableCommonHeader"
        headerClasses="table_header"
        columnClasses="stringColumn, stringColumn w80"
        rowClasses="level2ColorStyle, level1ColorStyle"
        value="#{configOneBean.monthsDateList}" var="row" cellpadding="0"
        cellspacing="1" columnWidths="50px,100px" rows="25"
        width="40%"
        onrowmouseover="this.style.cursor='default';this.style.backgroundColor='#F1F1F1'‌​;" 
        onrowmouseout="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
        >

        <i:column>
            <i:rowSelector value="#{row.selected}" 
                selectionListener="#{configOneBean.rowSelectMonthsListener}" />
            <f:facet name="header">
                <i:outputText value="#{resApp['config.type.code']}" />
            </f:facet>
            <i:panelGroup style="width:200px;overflow:hidden;">
                <i:outputText value="#{row.NRPV_NRPA_CODE}" />
            </i:panelGroup>
        </i:column>

        <i:column>

            <f:facet name="header">
                <i:outputText value="#{resApp['config.type.name']}" />
            </f:facet>
            <i:panelGroup style="width:200px;overflow:hidden;">
                <i:outputText value="#{row.NRPV_CREATED_BY}" />
            </i:panelGroup>
        </i:column>



    </i:dataTable>

public void rowSelectMonthsListener(RowSelectorEvent event) {
    int selectRow = event.getRow();
    initActionMap();
    if (event.isSelected()) {

        this.monthsDate = monthsDateList.get(selectRow);
        getAllMonthsAndDate();
        actionMap.put(WorkMode.EDIT_GROUP, true);

    } else {

        this.monthsDate = null;
        workMode = WorkMode.EMPTY;
    }
}

1 ответ

rowSelector компонент имеет rendered приписывать. Если вы привязываете его к методу, чтобы определить, можно ли щелкнуть строку, это должно сработать. Не то чтобы я не пробовал этот атрибут в моем коде, но он должен работать, если не прослушивается.

Другие вопросы по тегам