2014-04-23 3 views
0

DataGrid 용 사용자 지정 CssResource를 설정합니다.선택한 행의 열에 특정 스타일을 추가하는 방법 DataGrid GWT

표의 첫 번째 열은 특정 스타일로 정렬 된 열입니다. 행을 선택하면 주문 열에 다른 특정 스타일을 설정해야합니다. 그런

뭔가 :

enter image description here

+0

메신저 방법을 .class.class 시도'.dataGridKeyboardSelectedRowCell.specificStyle { 배경 색상 :! # 444444 중요합니다; }'하지만 작동하지 않습니다 – formatqs

답변

1

당신은 당신의 열의 .getCellStyleNames 메소드를 오버라이드 (override) 할 수 있습니다

Column<Object, String> numberColumn = new Column<Object, String>(new TextCell()) { 

    @Override 
    public String getCellStyleNames(Context context, Object object) { 

    if (selectionModel.isSelected(object)) { 
     return "boldStyle"; 
    } 
}; 
+0

꽤 예쁘다. 고마워,하지만'NoSelectionModel'에서는 작동하지 않습니다. – formatqs

+0

"행이 선택 될 때"라는 질문에 말했습니다. 행이 선택되었는지 결정하는 방법은 중요하지 않습니다. selectionModel.isSelected()를 사용하는 것으로 바꾸십시오. –

0

AbstractHasData#addCellPreviewHandler()로 봅니다.

dataGrid.addCellPreviewHandler(new Handler<T>() { 

    @Override 
    public void onCellPreview(CellPreviewEvent<T> event) { 
     if ("click".equals(event.getNativeEvent().getType())) { 
      table.getRowElement(event.getIndex()).getCells().getItem(0).getStyle() 
        .setBackgroundColor("#444444"); 
     } 
    } 

}); 

참고 :이 코드는 SingleSelectionModel입니다. MultiSelectionModel에 필요한 경우 선택한 모든 행에 대해 동일한 작업을 수행하십시오.

+0

선택 모델이있는 경우 SelectionChangeHandler를 추가하기 만하면됩니다. –

+0

@AndreiVolgin 스타일을 변경하기 위해'SelectionChangeHandler'에서'TableCellElement'을 얻는 방법은 무엇입니까? – Braj

+0

사실, 더 간단한 해결책이 있습니다. 내 대답을 보라. –

관련 문제