我正在尝试在datagrid列中插入一个文本框。我知道我可以使用TextCell或EditTextCell,但出于某种原因,我选择了TextBox。
我选择了以下方法
Cell<String> cell = new AbstractCell<String>()
{
@Override
public void render( com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb )
{
FlowPanel fp = new FlowPanel();
TextBox tb = new TextBox();
tb.setText( value );
fp.add( tb );
sb.appendEscaped( fp.getElement().getString() );
}
};
// Address.
Column<ContactInfo, String> addressColumn = new Column<ContactInfo, String>( cell )
{
@Override
public String getValue( ContactInfo object )
{
return object.getAddress();
}
};
我在这里遇到的问题是我在UI而不是文本框
中获得以下内容<div><input class="gwt-TextBox" type="text"></div>
但是当我更换
时sb.appendEscaped( fp.getElement().getString() );
与
sb.appendHtmlConstant( fp.getElement().getInnerHTML() );
我正在获取文本框,但是值没有填充。
任何人都可以解释这种行为。如何填充值?
答案 0 :(得分:0)
不要创建FlowPanel和TextBox小部件。代替:
sb.appendHtmlConstant("<input class=\"gwt-TextBox\" type=\"text\" value=\"" + myValue + "\"></input>");
其中myValue是您希望在文本框中看到的内容。
答案 1 :(得分:-1)