2016-08-05 149 views
0

我正在使用GwtBootstrap3 0.9.3,並使用UiBinder將一些Widgets放在了我的桌面上。類org.gwtbootstrap3.client.ui.CheckBox的複選框和org.gwtbootstrap3.client.ui.Button的按鈕都正常工作。當我點擊它們時,它們會觸發ClickEvents。選擇和MultipleSelect不會觸發事件

但選擇的類org.gwtbootstrap3.extras.select.client.ui.MultipleSelect和org.gwtbootstrap3.extras.select.client.ui.Select不點擊任何事件時,我點擊它們。他們不應該在製作或更改選區時觸發com.google.gwt.event.logical.shared.ValueChangeEvent?

的事件處理器正在尋找這樣的:

@UiHandler("simpleSelect") 
void onValueChangeSimple(ValueChangeEvent<String> event) { 
    do.somethingSimple(); 
} 

@UiHandler("multiSelect") 
void onValueChangeMultiple(ValueChangeEvent<List<String>> event) { 
    do.somethingMultiple(); 
} 

的ValueChangeEvent是從來沒有發射,當我點擊這些widges。

但是,當我編程方式設置的值一樣

simpleSelect.setValue("Item 1" , true); 

的ValueChangeEvent將被解僱,do.somethinSimple()將被調用。

出了什麼問題?我可以通過使用UI來使這些選擇小部件觸發ValueChangeEvents?

回答

0

我用GwtBootstrap3Extras 0.9.3 + GWT 2.7 + SuperDevMode測試了以下實現。

繼承在* .gwt.xml:<inherits name="org.gwtbootstrap3.extras.select.Select"/>

* .ui.xml命名空間xmlns:select="urn:import:org.gwtbootstrap3.extras.select.client.ui

<select:Select ui:field="simpleSelect"> 
    <select:Option>A</select:Option> 
    <select:Option>B</select:Option> 
    <select:Option>C</select:Option> 
</select:Select> 
<select:MultipleSelect ui:field="multiSelect"> 
    <select:Option>A</select:Option> 
    <select:Option>B</select:Option> 
    <select:Option>C</select:Option> 
</select:MultipleSelect> 

ViewImplementation:

@UiField 
Select simpleSelect; 

@UiField 
MultipleSelect multiSelect; 

@UiHandler("simpleSelect") 
void onValueChangeSimple(ValueChangeEvent<String> event) { 
    GWT.log("single changed"); 
} 

@UiHandler("multiSelect") 
void onValueChangeMultiple(ValueChangeEvent<List<String>> event) { 
    GWT.log("multi changed"); 
} 

這是工作的罰款。無論何時從Select或MultipleSelect中選擇一個選項,該消息都會記錄到瀏覽器控制檯。如果你配置你的項目的方式應該是一樣的。否則,你有另一個問題(那麼你應該發佈你的UiField定義,* ui.xml,...)

+0

謝謝你的回答。我的代碼與你的代碼非常相似。我注意到的唯一區別是,選擇的項目被聲明爲屬性。 A將會是。這些選擇也在FlowPanels中。但這仍然行不通。它是用JDK 8和Spring Boot編譯和運行的。 –

+0

My * .ui.xml如下所示:

+0

如果我使用屬性''select:Option text =」A「value =」A「/>'它也在工作。不應該是問題。 Java 1.7和1.8由我測試。 – mxlse

相關問題