Radiobutton + zkoss

3 respostas
amoreiraedu

Usuário é um javabean, com os dados de usuário, como nome, senha, etc…

<zscript>

void move(){

nome.value = ((Usuario)box.getSelectedItem().value).getNome();

ativo.value = ((Usuario)box.getSelectedItem().value).isAtivo();

}

</zscript>

Nome: <textbox id=“nome” cols=“45” constraint=“no empty,/.+[a-z|A-Z]+/: Este campo não aceita números, e não pode ser vazio.”/>

No modelo acima, quando selecionado um registro no grid (lisbox), executa uma chamada ao evento Move(),
<listbox id=“box” multiple=“true” rows=“4” height=“150px” onSelect=“move()” >
Este evento carrega o textbox, com os dados selecionados no grid.

Agora preciso fazer o mesmo,  que usando um componente tipo radio, ou seja, quando for selecionado o registro no grid, será automaticamente selecionado o radio item referente a opção gravada no banco de dados.

<radiogroup id=“ativo”>

<radio id=“rdativosim” label=“Sim”/>

<radio id=“rdativonao” label=“Não”/>

</radiogroup>

Isso retorna o seguinte erro No such field: value :
Onde diz que o value do id do radiogroup não é válido.

Alguém sabe como fazer isso funcionar, num radiogroup?

3 Respostas

ricardosoares

o value do radiogroup é um valor inteiro e não boleano
se o radiogroup tem 2 items (radio) – o sim e o não --, o value dele só pode ser 0 ou 1, com a respectiva correspondencia.
o valor q vc esta resgatando do bean deve ser true ou false.
neste caso:if (((Usuario)box.getSelectedItem().value).isAtivo()) ativo.value = 0; else ativo.value = 1;
ou ativo = ((Usuario)box.getSelectedItem().value).isAtivo() ? 0 : 1;

amoreiraedu

Fiz desta forma, mas o erro persiste:

<zscript>
if (((Usuario)box.getSelectedItem().value).isAtivo()){
				rdativosim.value = 1;
			} else{
				rdativonao.value = 1;
			}
</zscript>

<radiogroup id="ativo">
		<radio id="rdativosim" label="Sim"/>
		<radio id="rdativonao" label="Não"/>
</radiogroup>
ricardosoares

tem q setar o valor na propriedade "selectedIndex" do radiogroup

<zscript>
if (((Usuario)box.getSelectedItem().value).isAtivo()){
				ativo.selectedIndex = 0;
			} else{
				ativo.selectedIndex = 1;
			}
</zscript>

<radiogroup id="ativo">
		<radio id="rdativosim" label="Sim"/>
		<radio id="rdativonao" label="Não"/>
</radiogroup>

sugestão: passe a adotar o padrão MVC, o código fica mais limpo e manutenível

Criado 15 de dezembro de 2008
Ultima resposta 16 de dez. de 2008
Respostas 3
Participantes 2