2011-12-12 6 views
3

내 프로젝트에서 GWT2.3을 사용하고 있습니다. 사용자가 editableTextCell을 클릭하면 editableTextBox 너비를 늘리고 싶습니다. 내 열 너비가 200 픽셀입니다. 사용자가 editableTextCell을 클릭하면 EditableTextCell의 TextBox 너비가 약 125px가 열 너비와 비교할 때 적습니다. GWT EditTextCell : EditTextCell에서 편집 가능한 TextBox 폭을 늘리는 방법은 무엇입니까?

나는 Celltable의 열에

열 stringColumn = 새 열을 EditTextCell을 추가 (새 EditTextCell()) { // 내 코드 }

cellTable.addColumn (stringColumn, "MyColumn"); cellTable.setColumnWidth (checkBoxColumn, 200, Unit.PX);

내가 텍스트 상자의 폭을 증가시키는 방법을 다음과 같은 시도하지만 문제는 내가 열 폭과 동일 EditTextCell에 표시 손실 내가 (설정) 텍스트 상자의 폭을 증가 할

@Override 
      public void onBrowserEvent(Context context, Element elem,Record object, NativeEvent event) { 
       String type = event.getType(); 

        int editedTexBoxSize = (cellTable.getOffsetWidth()-100)/cellTable.getColumnCount(); 

        if(elem.getInnerHTML().startsWith("<INPUT")){ 
         String test = elem.getInnerHTML(); 
        // test = <INPUT tabIndex=-1 value=P __eventBits="2048"></INPUT> 

        test= test.replace("value", " size="+editedTexBoxSize+" value"); 


        // test = <INPUT tabIndex=-1 size=131 value=P __eventBits="2048"></INPUT> 


         elem.setInnerHTML(test); 
        } 
       super.onBrowserEvent(context, elem, object, event); 
      } 

를 텍스트 상자에 편집하지 +하지 초점을 맞출 수있다.

모든 솔루션?

답변

0

사용자 지정 구성 요소를 만들어야합니다. 상자 밖의 EditTextCell은 입력란의 크기 속성을 설정하는 것을 허용하지 않고 열 너비 만 설정할 수 있습니다.

사용자 정의 셀을 만드는 방법의 예는 In search of a GWT validation example... where art thou?의 ValidateableInputCell impl을 참조하십시오.

틀림없이 유효성 검사가 아직 작동하지 않지만 셀의 입력 필드에 크기를 설정하는 기능은 있습니다. 내 프로젝트에서

3

나는 그렇게 마지막으로

cellTable.getColumn(cellTable.getColumnIndex(column)).setCellStyleNames(CELL_CSS); 

.edit-cell input { 
    width: 290px; 
} 
1

대답! 제가 첨가에 의해서도 UIBinder를 사용하여 더 간단이 시도 :

.edit-cell input { 
    width: 30px; 
    text-align: right; 
} 

을이어서 셀 테이블 I는

<c:CellTable 
     addStyleNames='{style.edit-cell}' 
     ui:field='itemTable' /> 

유명 추가!