Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Altevir

[Resolvido] Preencher DataGrid no Flex com DataTable ASP.NET (Flu

Recommended Posts

Boa Tarde!!

 

Pessoal preciso de uma ajuda...

Estou realizando uma consulta no banco de dados atraves de uma funçao criada no ASP.NET e criando um DataTable com esse resultado do select.

Gostaria de pegar esse resultado e retornar para o Flex para popular um DataGrid, até consegui fazer isso usando ArrayList com DataReader no .Net, porem, na propriedade DateField do

DataGrid no Flex estou tendo que colocar o indice (0, 1, etc) do Array correspondente ao nome do campo da tabela, se eu colocar o nome, o flex nao encontra e nao popula a Grid.

Alguem tem uma ideia de como retornar nao somente os dados da consulta mas tambem o nome dos campos para poder utilizar no flex, porque com indices fica inviavel o codigo.

 


Public Function buscaClientes() As ArrayList
       Dim Conn As New SqlConnection(GetConnectionString())
       Conn.Open()

       Dim Cmd As New SqlCommand("Select CodCliente, Nome From Clientes", Conn)
       Dim DReader As SqlDataReader = Cmd.ExecuteReader()
       Dim Lista As New ArrayList()

       While DReader.Read
        Dim values(DReader.FieldCount - 1) As Object
        DReader.GetValues(values)
        Lista.Add(values)
       End While

       Return Lista
End Function

 

Estou utilizando FluorineFx fazer a comunicaçao entre o ASP.Net e o Flex, e esta funcionando corretamente.

:ermm:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que debugar, você sabe o que ta indo pro flex? testou pra ve se ta indo todos os registros? Ta usando algum proxu debbuger? Se não experimen ta o Charles.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que debugar, você sabe o que ta indo pro flex? testou pra ve se ta indo todos os registros? Ta usando algum proxu debbuger? Se não experimen ta o Charles.

Abs

 

Opaaa

Entao, debuguei o codigo sim, todos os registros estao indo de forma correta, porem, no flex eu pego o retorno da minha funçao do ASP.Net atraves do result e jogo dentro de um ArrayCollection, ele preenche corretamente, mas eu nao queria trabalhar com indices do Array para identificar qual o campo que eu quero pegar o valor, e sim trabalhar com o nome dos campos que eu tenho na minha tabela, porque imagine ter que ficar setando o campo da sua tabela atraves de indices e nao atraves do nome dos campos, fica complicado.

Ontem mesmo consegui resolver, criei classes no ASP.Net (Atributos, Metodos e Construtores) e assim consigo pegar o nome do campo para trabalhar dentro do Flex, e uma questao que eu nao conhecia (se estiver errado me corrijam) é a de que no C# voce pode colocar o nome do seu construtor com o mesmo nome da sua Classe por exemplo:

public class Pessoa
{
public Pessoa(int _idPessoa)
}
}

 

ja no ASP.Net/VB.Net o seu construtor fica como:

Public Class Pessoa

     Public Sub New(ByVal _idPessoa As Integer)

     End Sub
End Class

 

ai quando eu faço a chamado da minha classe pelo Flex, ele me retorna o Fault informando que nao existe Construtor do Tipo Pessoa, ou seja, nao encontra o nome do Construtor (Public Sub New).

Eu resolvi fazendo da seguinte forma, criei uma classe chamada DadosPessoas, nessa eu guardo os Atributos, Metodos e Construtores.

Ai na minha Classe Pessoa ("Pai" digamos assim), essa é a classe que eu chamo do Flex, eu faço a chamada dessa outra classe chamada DadosPessoas, e com o construtor dessa classe eu jogo as informaçoes dentro de um ArrayList e retorno a lista para o Flex.

 

Exemplo:

 

Public Class Pessoas

   Public Function buscaPessoa(ByVal ID As Integer) As ArrayList

       Dim listaPessoas As New ArrayList()
       Dim DadosPessoa As DadosPessoas (minha classe com os Atributos, Metodos, Construtores)
       Dim Dados As Object

       Dim Conn As New SqlConnection(GetConnectionString())
       Conn.Open()

       Dim Cmd As New SqlCommand()
       Dim TabPessoas As New DataTable()
       Cmd.Connection = Conn
       Cmd.CommandText = "Select * From Pessoas Where ID=" & ID
       Cmd.CommandType = CommandType.Text
       TabClientes.Load(Cmd.ExecuteReader())

       For Each Dados In TabClientes.Rows
           DadosPessoas = New DadosPessoas(Dados("ID"), Dados("Nome"))
           listaPessoas.Add(DadosPessoas)
       Next

       Return listaPessoas

   End Function

 

Ufffaa....heheh

Deu tudo certo ate o momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um construtor por padrão tem o mesmo nome da classe, sempre, pelo menos na maioria das linguagens.Com php isso é feito tão simples.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.