Datagrid Flex + Java

2 respostas
surfzera

Pessoal fiz uma listagem de usuário em um datagrid do flex mais os dados não são apresentados no datagrid … fiz o debug e os dados passam corretamente pelo java quando chega no flex para popular a grid fica invisive. Alguma ideia ?

<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" 
			   title="Cadastro de Usuário" 
			   height="463" 
			   width="764" 
			   horizontalCenter="17" 
			   verticalCenter="5"
			   close="fecharJanela();">
	
	<s:TabBar id="tabs" left="14" y="12" dataProvider="{vs}"/>
	<mx:ViewStack id="vs" width="749" height="401" left="8" y="23">
		<s:NavigatorContent label="Cadastrar"  width="100%" height="100%">
			<s:BorderContainer width="100%" height="385" borderWeight="2" cornerRadius="3" dropShadowVisible="true" y="10">
				<s:backgroundFill>
					<s:LinearGradient rotation="90">
						<s:GradientEntry color="0xE2E2E2" />
						<s:GradientEntry color="0x323232" />
					</s:LinearGradient>
				</s:backgroundFill>
					<mx:Form x="10" y="14" width="725" height="303" defaultButton="{salvar}">
						<mx:FormItem label="Login:">
							<s:TextInput id="inputLogin"/>
						</mx:FormItem>
						<mx:FormItem label="Nome:">
							<s:TextInput id="inputNome"/>
						</mx:FormItem>
						<mx:FormItem label="Nivel:">
							<s:TextInput id="inputNivel"/>
						</mx:FormItem>
						<mx:FormItem label="Unidade:">
							<s:TextInput id="inputUnidade"/>
						</mx:FormItem>
					</mx:Form>
					<s:Button id="limpar" label="Limpar" click="limpar2(event);" x="217" y="325"/>
					<s:Button id="salvar" label="Salvar" click="inserir();" toolTip="Salvar" x="126" y="324"/>
					<s:Button id="apagar" label="Apagar" click="excluir();" x="309" y="326" toolTip="Apagar"/>
			</s:BorderContainer>
		</s:NavigatorContent>
		<s:NavigatorContent label="Listar" width="100%" height="100%" click="listar();init();">
			<s:BorderContainer width="746" height="386" borderWeight="2" cornerRadius="3" dropShadowVisible="true" y="10">
				<s:backgroundFill>
					<s:LinearGradient rotation="90">
						<s:GradientEntry color="0xE2E2E2" />
						<s:GradientEntry color="0x323232" />
					</s:LinearGradient>
				</s:backgroundFill>
				<mx:DataGrid id="dg" x="5" y="5" width="727" height="367" doubleClickEnabled="true" doubleClick="{tabs.selectedIndex=0}">
					<mx:columns>
						<mx:DataGridColumn headerText="Login" dataField="login"/>
						<mx:DataGridColumn headerText="Nome" dataField="nome"/>
						<mx:DataGridColumn headerText="Nivel" dataField="nivel"/>
						<mx:DataGridColumn headerText="Unidade" dataField="unidade"/>
					</mx:columns>
				</mx:DataGrid>
			</s:BorderContainer>
		</s:NavigatorContent>
	</mx:ViewStack>
	
	<fx:Declarations>
		
		<mx:RemoteObject id="servicoUsuario" destination="servicoUsuario">
			<mx:method name="listar" result="onResult(event);" fault="onFault(event);"/>
			<mx:method name="inserir"  result="onResultData(event);" fault="onFault(event);"/>
			<mx:method name="alterar" result="onResultData(event);" fault="onFault(event);"/>
			<mx:method name="excluir" result="onResultData(event);" fault="onFault(event);"/>
		</mx:RemoteObject>
		
	</fx:Declarations>
	
	<fx:Script source="../controle/UsuarioControle.as"/>

Controler

import br.com.sectioaurea.prc.entidade.Usuario;
import flashx.textLayout.conversion.ConversionType;			
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.ListEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.managers.PopUpManager;


public function init():void{
	dg.addEventListener(ListEvent.CHANGE,selectedItems);
}

public function onResult(re:ResultEvent):void{
	var data:Object = re.message.body;
	dg.dataProvider = data;
}

public function onResultData(re:ResultEvent):void{
	servicoUsuario.listar();
}

public function onFault(fault:FaultEvent):void{
	trace("Code: "+fault.fault.faultCode);
	trace("Detail: "+fault.fault.faultDetail);
	trace("String: "+fault.fault.faultString);
}

/***************************
 **	Apresenta Item Selecionado
 ****************************/
public function selectedItems(evt:ListEvent):void{
	inputLogin.text = dg.selectedItem.login;
	inputNome.text = dg.selectedItem.nome;
	inputNivel.text = dg.selectedItem.nivel;
	inputUnidade.text = dg.selectedItem.unidade;
}

/***************************
 **	Inserir Usuário
 ****************************/
public function inserir():void{
	//var novoUsuario:Usuario = new Usuario();
	//novaOS.numero = inputNumero.text;
	
}

/***************************
 **	Alterar Usuário
 ****************************/
public function alterar():void{
}

/***************************
 **	Excluir Usuário
 ****************************/
public function excluir():void{
	if(dg.selectedItem != null){
		//var novaOS:Os = new Os();
		//novaOS.numero = dg.selectedItem.numero;	
		//servicoOS.excluir(novaOS);
	}else{
		Alert.show("Selecione um item da tabela!!");
	}
}

/***************************
 **	Listar Usuário
 ****************************/
public function listar():void{
	servicoUsuario.listar();
}

/***************************
 **	Limpar Tela Cadastro Usuário
 ****************************/
protected function limpar2(event:MouseEvent):void
{
	inputLogin.text = "";
	inputNome.text = "";
	inputNivel.text = "";
	inputUnidade.text = "";
}

/***************************
 **	Fechar PopUp
 ****************************/
public function fecharJanela():void{
	PopUpManager.removePopUp(this);
}

2 Respostas

pintofree

Ola. fera verifique seu evento

public function onResult(re:ResultEvent):void{ var data:Object = re.message.body; dg.dataProvider = data; }

Se nao me engano deveria ser re.result ou algo do genero.

surfzera

na verdade já verifiquei e nao funciono, tenho o mesmo metodo em outro datagrid de outra tela que faz a mesma coisas e está funcionando corretamente. Se tiver mais alguma dica … vai se de grande ajuda.

Criado 28 de junho de 2010
Ultima resposta 28 de jun. de 2010
Respostas 2
Participantes 2