1
我在使用GWT的項目中遇到ClickHandler
問題。Clickhandler不會觸發
在對話框的標題中,我想插入一個新按鈕。
- 我創建了一個新的插入方法:
addToTitle(...)
。 - 我加
ClickHandler
到按鈕
問題:通過點擊按鈕不會觸發事件。爲什麼?
這是我的代碼:
DialogBox dialog = new DialogBox();
Button button = new Button("A new Button");
button.addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
Window.alert("yuhuhuhu");
}
});
dialog.addToTitle(button);
代碼(從評論部分提取的):
public class PlentyDialogWindow extends DialogBox {
private FlowPanel captionPanel = new FlowPanel();
public Widget closeWidget = null;
private boolean closeOnEscKey = false;
private FlowPanel titleContentWrapper = new FlowPanel();
public PlentyDialogWindow(boolean isModal) {
super(false, isModal);
this.addStyleName("DialogBox");
this.getElement().setId("DialogBoxId");
this.setAnimationEnabled(true);
this.closeWidget = generateCloseButton();
}
public void setCaption(String txt,Widget w) {
captionPanel.setWidth("100%");
this.addCaption(txt);
this.titleContentWrapper.getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
captionPanel.add(this.titleContentWrapper);
FlowPanel widgetWrapper = new FlowPanel();
widgetWrapper.add(w);
widgetWrapper.addStyleName("PlentyPopupCloseIconWrapper");
captionPanel.add(widgetWrapper);
captionPanel.addStyleName("Caption");
Element td = getCellElement(0,1);
td.setInnerHTML("");
td.appendChild(captionPanel.getElement());
}
/** * * @param w */ public void addToTitle(Widget w) {
this.titleContentWrapper.add(w);
}
}
稱爲試試我敢肯定的Bug是addToTitle()內。請顯示該代碼。 –
歡迎來到Stackoverflow。 「addToTitle(...)'函數是否可以將添加到HTML字符串的小部件轉換(從而消除了GWT維護對處理程序引用的機會)?我們確實需要看到你的'DialogBox'類來提供幫助。乾杯, –
感謝您的回答! addToTitle(...) - 函數僅將新小部件插入到標題od對話框中。
public void addToTitle(Widget w) \t { \t \t this.titleContentWrapper.add(w); \t }
而dialogBox是一類GWT。 – user1758855