私たちの要件は、セルにカスタムウィジェットを含むCellTable
を使用して編集可能なグリッドを作成することです。カスタムウィジェットには、テキストボックスと、そのテキストボックスに関連付けられた検索ボタンがあります。カスタムウィジェットをセルとして追加するには、AbstractEditableCell
クラス(GWTによって提供)のサブクラスを作成し、オーバーライドrender()
およびonBrowserEvent()
メソッドを持っていました。GWT:カスタムウィジェットをカスタムウィジェットの失うイベントに追加するとき
カスタムウィジェットセルのrender(Context context, String value, SafeHtmlBuilder sb)
メソッドは、ウィジェットのセーフHTMLを作成し、この安全なhtmlをセルにレンダリングします。しかし、私が直面している問題は、カスタムウィジェットは正しくレンダリングされますが、そのウィジェットは関連イベントを失います。レンダリング方法は以下の通り:私は次のコードを使用してrender()
方法でウィジェットを追加しようとすると、それはウィジェットを追加しません
if (viewData.isEditing()) {
textBoxSelector.setText(text);
OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml safeHtmlObj = new OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml(textBoxSelector.toString());
sb.append(safeHtmlObj);
} else {
// The user pressed enter, but view data still exists.
sb.append(html);
}
。
int left = parent.getAbsoluteLeft();
int top = parent.getAbsoluteTop();
String elementId = "ID" + left + top;
try {
parent.setId(elementId);
// parent.removeFromParent();
RootPanel.get(elementId).add(textBoxSelector);
} catch (AssertionError error) {
RootPanel.get(elementId).add(textBoxSelector);
}
、誰もがそれが関連するイベントを失うことなくCellTable
でウィジェットの追加を達成するために私を導くことができる場合、私は本当に感謝します。