设置列的宽度而不在GWT 2.2 CellTable中剪切TextInputCell?

Ash*_*bhu 5 gwt gwt-2.2 gwt-2.2-celltable

我有一个相当特殊的问题.我正在使用GWT 2.2发布的CellTable.CellTable配置为固定布局.我在表中有一个可编辑的列(TextInputCell).

我目前正在CellTabel上使用setColumnWidth方法来修复列的宽度.这很有效,但它不会对输入文本元素强制执行宽度约束.结果,编辑器输入字段在列下溢出,给人一种被剪裁掉的印象.

这是来自GWT docs的代码示例,用于演示此问题.请注意,名称字段未调整大小并在表内溢出.

public class Trial实现EntryPoint {private static class Contact {private static int nextId = 0;

    private final int id;
    private final String address;
    private Date birthday;
    private String name;
    private Long number;

    public Contact( String name, Date birthday, String address, Long number )
    {
        nextId++;
        this.id = nextId;
        this.name = name;
        this.birthday = birthday;
        this.address = address;
        this.number = number;
    }
}

private static final List<Contact> CONTACTS = Arrays.asList( new Contact( "John", new Date( 80, 4, 12 ), "123 Fourth Avenue", 0L ), new Contact( "Joe",
        new Date( 85, 2, 22 ), "22 Lance Ln", 1L ), new Contact( "George", new Date( 46, 6, 6 ), "1600 Pennsylvania Avenue", 2L ) );


public void onModuleLoad( )
{
    final CellTable<Contact> table = new CellTable<Contact>( 10 );
    table.setWidth( "60px", true );
    ListDataProvider<Contact> listPrvdr;

    final TextInputCell nameCell = new TextInputCell( );
    Column<Contact, String> nameColumn = new Column<Contact, String>( nameCell )
    {
        @Override
        public String getValue( Contact object )
        {
            return object.name;
        }
    };
    table.addColumn( nameColumn, "Name" );
    table.setColumnWidth( nameColumn, "60px" );

    nameColumn.setFieldUpdater( new FieldUpdater<Contact, String>( )
    {
        public void update( int index, Contact object, String value )
        {
            object.name = value;
            table.redraw( );
        }
    } );

            listPrvdr = new ListDataProvider<Contact>( );
    listPrvdr.addDataDisplay( table );
    RootPanel.get( ).add( table );

    listPrvdr.getList( ).addAll( CONTACTS );
}
Run Code Online (Sandbox Code Playgroud)

}

在此输入图像描述

我错过了什么?如何在输入字段而不仅仅是主机列上强制执行宽度约束?

Ash*_*bhu 1

我使用外部 CSS 来管理所有的问题。没有花费太多精力,因为无论如何我都必须子类化 TextInputCell。如果您不是子类并且出于某种原因无法使用外部 CSS 修复,则没有直接的方法来设置 TextInputCell 元素的样式。

如果有人有更好的解决方案,请通过回复此帖子来分享。