Отключение определенной строки в 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
приписывать. Если вы привязываете его к методу, чтобы определить, можно ли щелкнуть строку, это должно сработать. Не то чтобы я не пробовал этот атрибут в моем коде, но он должен работать, если не прослушивается.