我正在尝试在 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() );
我正在获取文本框,但该值未填充。
谁能解释这种行为。如何填充该值?