3

我在我的项目中使用 GWT2.3。当用户单击可编辑文本单元时,我想增加可编辑文本框的宽度。问题是我的列宽是 200 像素。当用户单击 editableTextCell 时,EditableTextCell 中的 TextBox 宽度约为 125px,与列宽相比要小。

我在 Celltable 的列中添加了 EditTextCell

Column stringColumn = new Column(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 中出现的 TextBox 宽度等于列宽。

任何解决方案?

4

3 回答 3

3

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

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

.edit-cell input {
    width: 290px;
}
于 2012-11-01T06:52:18.930 回答
1

终于有答案了!我通过添加以下内容使用 UIBinder 更简单地尝试了这个:

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

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

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

精彩的 !

于 2013-01-03T15:55:32.887 回答
0

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

看看这里的 ValidateableInputCell impl:In search of a GWT validation example... 你在哪里?有关如何制作自定义单元格的示例。

诚然,验证还没有工作,但在单元格内的输入字段上设置大小的能力可以。

于 2012-02-18T04:31:24.283 回答