我想在datagrid列中插入一個文本框。我知道我可以使用TextCell或EditTextCell,但出於某種原因,我使用TextBox。GWT Datagrid:插入小部件到列
我用下面的方法
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();
}
};
我遇到現在的問題就在於,我得到的用戶界面,而不是文本
<div><input class="gwt-TextBox" type="text"></div>
下列但是,當我更換
sb.appendEscaped(fp.getElement().getString());
與
sb.appendHtmlConstant(fp.getElement().getInnerHTML());
我正在獲取文本框,但該值未填充。
任何人都可以解釋這種行爲。我如何填充值?
感謝您的回覆。這將成爲文本框的特定解決方案。如何推廣它? –
爲什麼你需要推廣它?已經有很多有用的單元格可用於複選框,文本框,列表,圖像,按鈕等。如果您只是將HTML添加到AbstractCell,則它們都具有額外的功能。如果您不添加任何特殊功能,請使用其中一個單元格。如果您添加自定義功能,則無法對其進行概括。 –