2010-08-04 4 views

답변

25

당신이 그리드 대신 FlexTable를 사용할 수있는 옵션의 경우 :

FlexTable flexTb= new FlexTable(); 
flexTb.getFlexCellFormatter().setColSpan(0, 1, 2); 
flexTb.setWidget(0, 1, new Label("Hello")); 
+6

그냥 참고로,'FlexTable'는 Grid' (http://code.google.com/p/google-web-toolkit-incubator/wiki/BulkTableRenderers)'보다 느리다 동적으로 셀을 추가하려면 최대 성능을 위해'Grid'를 사용해야합니다. –

+0

@Cataclysm "질문에 그는 옵션이 있다고 말하지 않았습니다."기술 관리자는 사고 방식을 바꾸어야합니다. 또한 "유용한 정보"를 자유롭게 제공하십시오. – Jla

+0

미안 해요, 질문'어떻게 위젯을 포함하는 gwt 그리드 셀에 rowspan과 colspan 값을 설정합니까? ' 나는이 대답이 그럴 수 없다고 생각한다. FlexTable에는 colspan 또는 rowspan을 설정하는 빌드 인 메서드가 있지만 GWT-DataGrid에서 범위를 설정하는 데 문제가 있습니다. FlexTable 사용을 제안 해 주시겠습니까? 아닙니다. 불가능합니다. – Cataclysm

8

A-그리 간단하지-솔루션이에있다가. DOM을 직접 조작하여 작동합니다.

Grid g = new Grid(10, 5); 

Element e = g.getCellFormatter().getElement(0, 0); 
e.setAttribute("colspan", "5"); 

ArrayList<Element> toRemove = new ArrayList<Element>(); 
for (int x=1; x<5; x++) 
    toRemove.add(g.getCellFormatter().getElement(0, x)); 
for (Element f : toRemove) 
    f.removeFromParent(); 

그것은 다음과 같은 작업을 수행합니다 : 첫째 TD의

  • 세트 속성 "열 병합" "5"
  • 같은 행에 다른 TDS 파일을 제거

유의하시기 바랍니다, 내가 사용하는 것이 for-loops. 하나의 루프로 시도했지만 요소 중 일부는 NULL이므로이 방법을 시도해 보았습니다. 당신이하지 않는, 그래서

토마스

+0

이것은 IE 7,8 또는 9에서는 작동하지 않습니다. 현재 CellTable – drye

+1

에 대한 동일한 솔루션을 찾고 있는데 dom을 css-formating으로 변경하려고했습니다. .my-table tr : first-child> td : first-child + td {border : none} 과 같이 할 수있는 좋은 것들이 있습니다. 첫 번째 행의 두 번째 셀을 포맷합니다. 국경이 없다. 예를 들어, colspan이 5 인 경우 표를 포맷했습니다. –

+0

걸릴 멀리 그리드 빨아 ... – BuvinJ

관련 문제