특정 데이터가 표시된 화면이 있습니다. 데이터를 표시하려면 datatable 옵션을 사용하고 행을 선택하려면 rowselector를 사용하고 있습니다. 행을 선택하면 일부 사용자가 편집 및 삭제와 같이 데이터를 조작 할 수있는 옵션이 표시되지만 편집 할 수없는 데이터가 필요합니다.데이터 테이블 IceFace에서 특정 행 비활성화하기
나는 현재 월이 8 월이고 내 페이지가 이전 두 달 데이터와 다음 10 개월 데이터를 표시하는 것처럼 나는 월 단위로 데이터를 보여주는 화면을 가지고 있습니다.
이제 rowselector를 통해 행을 선택하는 동안 현재 개월 및 이전 2 개월 데이터를 편집 할 수 없거나 비활성화 할 수 있기를 바랍니다.
<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;
}
}
안녕하세요 ** Wis ** 답장을 보내 주셔서 감사합니다 .... 조금 더 자세히 설명해 주시거나 샘플 코드가 큰 도움이 될 수 있겠습니까? –
나는 다음과 같이 제안했습니다 :''관리 빈에서는 public boolean isSelectable (Object obj)를 가져야합니다. 현재 날짜와 비교하여 변수'obj'를 테스트하고 선택 가능 여부를 결정합니다. 당신의'obj' 변수의 타입, 아마도'Date', 아마도'Calendar' (제 추측이지만, 당신 자신의 POJO 일 수 있습니다)를 모르겠습니다. – Wis
안녕하세요, 귀하의 회신에 대한 @Wis 감사합니다 ......... 나는이 논리를 적용하려고했지만 그것은 모든 행을 사용할 수 없게됩니다 ..... 난 개월 이름과 데이터를 비교하고 그것이 데이터 테이블에서 전체 데이터 테이블은 사용할 수 없게됩니다. –