我有一個相當奇怪的問題。我從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