我們的要求是讓使用CellTable
含自定義部件在其細胞可編輯網格。自定義小部件具有與文本框關聯的文本框和搜索按鈕。要將自定義小部件添加爲單元格,創建了AbstractEditableCell
類的子類(由GWT提供),並覆蓋了render()
和onBrowserEvent()
方法。GWT:在添加自定義小部件celltable定製的丟失事件部件
自定義窗口小部件單元的render(Context context, String value, SafeHtmlBuilder sb)
方法創建一個widget的安全html和到細胞使這個安全HTML。但我面臨的問題是,自定義小部件呈現正確,但它失去了其同事事件。下面給出的渲染方法:
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);
}
如果我嘗試使用下面的代碼添加小部件在render()
方法,它不會添加的窗口小部件。
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
沒有失去它的相關事件。