我有一个相当奇怪的问题。我从GWT 2.2版本使用CellTable。 CellTable配置为固定布局。我在表格中有一个可编辑的列(TextInputCell)。在GWT 2.2 CellTable中设置列的宽度而不剪切TextInputCell?
我目前使用CellTabel上的setColumnWidth方法来修复列的宽度。这很好,但它不强制输入文本元素的宽度约束。结果,编辑器输入字段在列下方溢出,给人留下了被剪掉的印象。
下面是GWT文档中的代码示例,修改后用于演示此问题。请注意名称字段没有调整大小,并在表格内溢出。
公共类试验实现入口点 { 私有静态类联系 { 私有静态诠释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);
}
}
我缺少什么?我如何在输入字段而不仅仅是主机列上实施宽度约束?
哈哈......这正是我最终为我的解决方案所做的(并且首先想避免的)。感谢您的回答:) – 2011-06-09 05:53:22