GWT EditTextCell:如何在EditTextCell中增加可编辑的TextBox宽度?

时间:2011-12-12 06:03:14

标签: gwt cell gwt-2.2-celltable gwt-celltable

我在我的项目中使用GWT2.3。 我想在用户点击editableTextCell时增加editableTextBox宽度。 问题是我的列宽是200 Px。当用户点击editableTextCell时,EditableTextCell中的TextBox宽度大约为125px,与列宽相比较小。

我在Celltable的专栏

中添加了EditTextCell

列stringColumn = new Column(new EditTextCell()){ //我的代码 }

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

我尝试了以下方式来增加TextBox宽度,但问题是我无法在文本框中编辑+焦点而不是损失

    @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中出现的TextBox宽度等于列宽。

任何解决方案?

3 个答案:

答案 0 :(得分:3)

在我的项目中,我这样做:

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

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

答案 1 :(得分:1)

最后答案! 我通过添加:

尝试使用UIBinder更简单
.edit-cell input {
    width: 30px;
    text-align: right;
}

然后对于我添加的单元格表

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

很棒!

答案 2 :(得分:0)

您需要创建自定义组件。开箱即用的EditTextCell不允许您设置输入字段的size属性,只允许设置列宽。

在这里查看ValidateableInputCell impl:In search of a GWT validation example... where art thou?以获取如何制作自定义单元格的示例。

不可否认,验证尚未奏效,但能够在单元格内的输入字段上设置大小。