3

私は GWT (Google Web Toolkit) 1.5.3 と GXT (ExtJS) 1.2 を使用しています。RPC 呼び出しの後に生成されたいくつかのラジオ ボタンを含む単純なフォームを作成して、いくつかの値を取得したいだけです。

コード:

final FormPanel simple = new FormPanel();
        simple.setFrame(true);
        simple.setWidth(350);
        simple.setHeaderVisible(false);

        DateField date = new DateField();
        date.setFieldLabel("Date");
        simple.add(date);

        ListFluxServiceAsync service = (ListFluxServiceAsync)
        GWT.create(ListFluxService.class);
        ServiceDefTarget target = (ServiceDefTarget)service;
        String url = GWT.getModuleBaseURL() + "flux.rpc";
        target.setServiceEntryPoint(url);

        final RadioGroup radioGroup = new RadioGroup("RadioGroup");
        radioGroup.setFieldLabel("Flux");
        radioGroup.setOrientation(Orientation.VERTICAL);

        service.getAllFlux(new AsyncCallback<List<FluxModelData>>(){

            public void onFailure(Throwable caught) {
                GWT.log("flux.rpx::onFailure",  caught);
                MessageBox.alert("what?", "onFailure :" + caught.getMessage(), null);
            }

            public void onSuccess(List<FluxModelData> result) {

                Iterator<FluxModelData> it = result.iterator();
                while ( it.hasNext() ){
                    FluxModelData fmd = it.next();
                    Radio radio = new Radio();
                    radio.setName("flux");
                    radio.setValue(true);
                    //radio.setRawValue("my very long value");
                    radio.setBoxLabel(fmd.getDescription());
                    radioGroup.add(radio);
                }

                simple.add(radioGroup);
                simple.layout(); //we need it to show the radio button

            }
        });



        simple.setButtonAlign(HorizontalAlignment.CENTER);

        Button button = new Button("Récupérer");
        button.addSelectionListener(new SelectionListener<ButtonEvent>(){

            @Override
            public void componentSelected(ButtonEvent ce) {

                MessageBox.alert("what?", radioGroup.getValue().getRawValue() , null);

            }});

        simple.addButton(button);


        RootPanel.get().add(simple);

私の問題は、ラジオボタンの値を設定/取得できないことです。setRawValue("xxxxxxx") を試してみると、setValue(boolean) の設定が機能している間に null エラーが発生しますが、ラベル値ではなくラジオ値を取得することを期待していました。

何か案が?

4

7 に答える 7

2

ラジオを作成

Radio radio = new Radio();  
radio.setBoxLabel("Si");  
radio.setValue(true);
radio.setValueAttribute("true");

Radio radio2 = new Radio();  
radio2.setBoxLabel("No");
radio2.setValueAttribute("false");

RadioGroup radioGroup = new RadioGroup();  
radioGroup.setFieldLabel("Afecto");  
radioGroup.add(radio);  
radioGroup.add(radio2);

選択した値を取得

Boolean b = Boolean.parseBoolean(radioGroup.getValue().getValueAttribute());
于 2011-05-05T15:21:05.633 に答える
1

GWT RadioButton クラスの例を拡張する必要があります。

public class ExtRadioButton extends RadioButton {
    public ExtRadioButton(String name, String label) {
        super(name, label);
        // TODO Auto-generated constructor stub
    }

    public void setValue(String value)
    {
        Element span = getElement();
        Element input = DOM.getChild(span,0);
        DOM.setElementAttribute(input,"value",value);
     }

}

デフォルトでは、ブール値のみが許可されます。ラジオボタンを初期化したら、値を設定する必要があります。

于 2011-05-13T04:26:24.783 に答える
0

これをチェックしてください

 Radio radio1 = new Radio();
.............
 Radio radio2 = new Radio();
.............

in order to get value you can do as follow

String value = (radio1.getValue()) ? radio1.getText() : radio2.getText(); 
于 2011-06-08T08:55:33.713 に答える
0

これを行うもう 1 つの方法は、メソッドを使用するradio.setValueAttribute(String)ことです。次に、RadioGroup で次のコードを使用して、クリックされたラジオ ボタンの設定された「値」属性を取得できます。

radioGroup.addListener(Events.Change, new Listener<BaseEvent>() {
  @Override
  public void handleEvent(BaseEvent be) 
  {
    final RadioGroup radioGroup = (RadioGroup)be.getSource();

    final Radio clickedRadioBtn = radioGroup.getValue();

    final String valueAttribute = clickedRadioBtn.getValueAttribute(); // Correct !!!

  }
});
于 2012-05-18T12:32:36.283 に答える
0

メソッドを使用radio.setAttributeValue()して、ラジオ ボタンの値を設定します。

于 2009-11-06T14:25:33.267 に答える
0

radioButton.setItemId() と getItemId() を使用すると解決します。

于 2008-12-10T17:22:50.987 に答える
0
            Radio includeButton = new Radio();
        Radio excludeButton = new Radio();
        RadioGroup radioGroup = new RadioGroup();




            radioGroup.add(includeButton);
    radioGroup.add(excludeButton);

           includeButton.setvalue(true)//false
于 2012-07-16T10:58:39.660 に答える