GWT Datagrid:将小部件插入列中
我试图在datagrid列中插入一个文本框。我知道我可以选择TextCell或EditTextCell,但出于某种原因,我选择了TextBox 我采用了以下方法GWT Datagrid:将小部件插入列中,gwt,datagrid,gwt-celltable,Gwt,Datagrid,Gwt Celltable,我试图在datagrid列中插入一个文本框。我知道我可以选择TextCell或EditTextCell,但出于某种原因,我选择了TextBox 我采用了以下方法 Cell<String> cell = new AbstractCell<String>() { @Override public void render( com.google.gwt.cell.client.Cell.Context context, String v
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();
}
};
与
我正在获取文本框,但该值未填充
有人能解释这种行为吗。如何填充值?不要创建FlowPanel和TextBox小部件。相反:
sb.appendHtmlConstant("<input class=\"gwt-TextBox\" type=\"text\" value=\"" + myValue + "\"></input>");
sb.appendHtmlConstant(“”);
其中myValue是您希望在文本框中看到的内容 为什么不使用TextInputCell
?谢谢您的回复。这将成为textbox的特定解决方案。如何推广它?你为什么要推广它?已经有很多有用的单元格可用于复选框、文本框、列表、图像、按钮等。它们都有额外的功能,如果只是将HTML添加到抽象单元格中,就会丢失这些功能。如果不添加任何特殊功能,请使用其中一个单元格。如果你添加了自定义特性,你就不能概括它。我有一个非常具体的要求。所以我没有使用TextInputCell。在评论或回答之前阅读问题。
sb.appendEscaped( fp.getElement().getString() );
sb.appendHtmlConstant( fp.getElement().getInnerHTML() );
sb.appendHtmlConstant("<input class=\"gwt-TextBox\" type=\"text\" value=\"" + myValue + "\"></input>");