2011-12-12 52 views
3

我在我的項目中使用GWT2.3。 我想在用戶點擊editableTextCell時增加editableTextBox的寬度。 問題是我的列寬是200 Px。當用戶點擊editableTextCell時,EditableTextCell中的TextBox寬度大約爲125px,與列寬相比較少。GWT EditTextCell:如何增加EditTextCell中可編輯的TextBox寬度?

我在Celltable的柱中加入EditTextCell

柱stringColumn =新柱(New EditTextCell()){// 我的代碼 }

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

我嘗試以下方法來增加文本框的寬度,但問題是我不能在文本編輯+重點不損失

@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); 
      } 

我想增加(套)文本框寬度出現在EditTextCell等於列寬。

任何解決方案?

回答

0

您需要創建一個自定義組件。開箱即用的EditTextCell不允許您設置輸入字段的大小屬性,僅列寬。

查看ValidateableInputCell impl在這裏:In search of a GWT validation example... where art thou?查看如何製作自定義單元格的示例。

不可否認,驗證功能尚未正常工作,但能夠在單元格內的輸入字段上設置大小。

3

在我的項目我做:

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

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

最後的答案! 我想這甚至simplier使用UiBinder的加入:

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

然後在單元格表我加

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

精彩!

相關問題