小编YNC*_*mak的帖子

EditTextCell FieldUpdater宽度

如何在字段编辑时设置文本框的宽度?

EditTextCell febCell = new EditTextCell();
Column<DTO, String> febColumn = new Column<DTO, String>(febCell){
    @Override
    public String getValue(DTO object) {
        return (String.valueOf(object.getFeb()));
    }
};
febColumn.setFieldUpdater(new FieldUpdater<DTO, String>() {
    public void update(int index, DTO object, String value) {
        System.out.println("index="+index+" resourceId="+object.getId()+" feb="+value);
    }
});
febColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LOCALE_END);
cellTable.addColumn(febColumn, "Feb");
cellTable.setColumnWidth(febColumn, 3, Unit.PCT);
Run Code Online (Sandbox Code Playgroud)

一切都运行良好,但是当我点击可编辑字段时,会出现一个非常大的文本框.那么,如何自定义此小部件以编辑数据?

如果我在PX中设置宽度而不是像PCT那样

cellTable.setColumnWidth(febColumn, 25, Unit.PX);
Run Code Online (Sandbox Code Playgroud)

编辑时单元格不会爆炸,但内部文本框仍然具有相同的长宽度,并且长字符串值隐藏在右侧后面.

好.可能我需要为每种类型的EditTextCell重新发明轮子:

MyEditTextCell extends AbstractEditableCell<String, MyEditTextCell.ViewData> ...
interface MyTemplate extends SafeHtmlTemplates {
    @Template("<input type=\"text\" value=\"{0}\" tabindex=\"-1\" size=\"{1}\" maxlength=\"{1}\" style=\"{2}\"></input>")
    SafeHtml input(String value, Integer maxLength, String style);
}
... …
Run Code Online (Sandbox Code Playgroud)

java gwt

11
推荐指数
1
解决办法
4447
查看次数

标签 统计

gwt ×1

java ×1