gwt extjs radio-button gwt-rpc gxt

GWT-GXT-¿Cómo obtener el valor del botón de radio?



extjs radio-button (7)

Mira esto

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();

Estoy usando GWT (Google Web Toolkit) 1.5.3 y GXT (ExtJS) 1.2 Solo quiero crear un formulario simple con algunos botones de radio generados después de una llamada RPC, para obtener algunos valores

Código:

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);

Mi problema es que no puedo establecer / obtener el valor del botón de opción. Si pruebo setRawValue ("xxxxxxx"), obtendré algunos errores nulos, mientras que establecer setValue (boolean) funciona, pero esperaba obtener el valor de radio y no el valor de la etiqueta.

¿Alguna idea?


Usando radioButton.setItemId () y getItemId () resuélvelo.


Crear radio

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);

obtener valor seleccionado

Boolean b = Boolean.parseBoolean(radioGroup.getValue().getValueAttribute());


Necesita extender la clase GWT RadioButton ex:

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); } }

Predeterminado, solo permite el valor booleano. Después de inicializar el botón de radio, necesita establecer el valor.


Radio includeButton = new Radio(); Radio excludeButton = new Radio(); RadioGroup radioGroup = new RadioGroup(); radioGroup.add(includeButton); radioGroup.add(excludeButton); includeButton.setvalue(true)//false


Yo uso el método radio.setAttributeValue() para establecer el valor para el botón de radio.


La otra forma de hacerlo es usar el radio.setValueAttribute(String) . Luego puede usar el siguiente código en RadioGroup para obtener el atributo ''value'' del botón de opción cliqueado:

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 !!! } });