0

データグリッド列内にテキストボックスを挿入しようとしています。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() );

テキストボックスを取得していますが、値が入力されていません。

誰かがこの行動を説明できますか?どうすれば値を入力できますか?

4

2 に答える 2

1

FlowPanelおよびTextBoxウィジェットを作成しないでください。その代わり:

sb.appendHtmlConstant("<input class=\"gwt-TextBox\" type=\"text\" value=\"" + myValue + "\"></input>");

ここで、myValueはテキストボックスに表示したいものです。

于 2012-09-13T13:43:04.697 に答える
-1

TextInputCell http://www.gwtproject.org/javadoc/latest/com/google/gwt/cell/client/TextInputCell.htmlを使用してみません か?

于 2013-10-24T22:54:06.383 に答える