我有一个屏幕,其中显示某些数据。我使用datatable选项显示数据和rowselector来选择行。 如果我选择任何行,会弹出一个选项,用户可以通过该选项操作数据(如编辑和删除),但我希望某些数据不可编辑。
我有一个屏幕,其中我按月显示数据,如果当前月份是8月,那么我的页面将显示前两个月的数据和下一个10个月的数据。
现在我希望当前月份和前两个月的数据不可编辑或禁用,同时选择行到行选择器。 enter image description here
下面是我的View页面和rowselector函数:
<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;
}
}
答案 0 :(得分:0)
rowSelector
组件确实具有rendered
属性。如果将它绑定到一个方法来确定是否可以单击该行,这应该可以解决问题。并不是说我没有在我的代码中尝试这个属性,但是如果没有错误的话,应该工作。