Pupular GridView

26/09/2011

0

Tenho duas estruturas de Classes:

Cliente
public class Cliente
{
private int _codSegurado;
public int CodSegurado
{
get { return _codSegurado; }
set { _codSegurado = value; }
}

private string _nome;
public string Nome
{
get { return _nome; }
set { _nome = value; }
}
}

ClienteContato
public class ClienteContato
{
private Cliente _cliente;
public Cliente Cliente
{
get { return _cliente; }
set { _cliente = value; }
}

private int _codSequencia;
public int CodSequencia
{
get { return _codSequencia; }
set { _codSequencia = value; }
}

private string _nome;
public string Nome
{
get { return _nome; }
set { _nome = value; }
}

private string _email;
public string Email
{
get { return _email; }
set { _email = value; }
}

private string _fone;
public string Fone
{
get { return _fone; }
set { _fone = value; }
}

}

Baseando na Estrutura das classes não estou conseguindo popular em um GridView a classe ClienteContato trazendo a coluna CódSegurado do Cliente. Como posso fazer isso ?


Gebram Seguros

Gebram Seguros

Responder

Posts

26/09/2011

Gebram Seguros

Eu estou usando:

<asp:BoundField DataField=Cliente.CodSegurado/>

para trazer os dados, mas ocorre o seguinte erro:

Não foi encontrado campo ou propriedade com o nome Cliente.CodSegurado na fonte de dados selecionada.
Responder

27/09/2011

Bruno Costa

Então. Eu também não consegui colocar dados de duas entidades em um mesmo grid.
O que eu fiz para solucionar foi colocar no grid os dados da classe principal e criar um botão no grid que ao clicar exibi todos os dados na tela, pode ser nos textbox mesmo.

Ex:
Tenho a classe Cliente, TelefoneCliente, e EnderecoCliente.
Na classe Cliente tenho dudas propriedades uma do tipo TelefoneCliente e outra EnderecoCliente.

Faço um select no banco que retorna o dados da Tabela Cliente inner join TelefoneCliente inner join EnderecoCliente.

Monto o objeto Cliente com os dados de Telefone e Endereco

No grid eu só mostro os dados da Classe Cliente e ao clicar em um botão do tipo template field no mesmo grid exibi nos textbox os dados do Cliente, telefone e endereço.
Responder

03/12/2011

Rodrigo Odasaki

Baseando nas suas classes, você pode fazer isso com uma consulta LINQ utilizando JOIN

Assim você vai realizar uma junção entre elas, podendo exibir colunas tanto de uma classe quanto de outra.
Responder

03/12/2011

Rodrigo Odasaki

Exemplo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<Cliente> clientes = new List<Cliente>()
        {
            new Cliente { CodSegurado = 1, Nome = João Oliveira },
            new Cliente { CodSegurado = 2, Nome = Daniela Santos },
            new Cliente { CodSegurado = 3, Nome = Juliana Amorin }
        };

        IEnumerable<ClienteContato> clienteContatos = new List<ClienteContato>()
        {
            new ClienteContato { CodCliente = 1,  Email = joao.oliveira@internet.com, Fone = 11111111 },
            new ClienteContato { CodCliente = 2,  Email = dani.santos@internet.com, Fone = 22222222 },
            new ClienteContato { CodCliente = 3,  Email = juliana.amorin@internet.com, Fone = 33333333 }
        };
        

        var dados = from c in clientes
                    join p in clienteContatos on c.CodSegurado equals p.CodCliente
                    select new { c.CodSegurado, c.Nome, p.Email, p.Fone };

        GridView1.DataSource = dados;
        GridView1.DataBind();
    }

    public class Cliente
    {
        public int CodSegurado { get; set; }
        public string Nome { get; set; }
    }

    public class ClienteContato
    {
        public int CodCliente { get; set; }
        public string Email { get; set; }
        public string Fone { get; set; }
    }
}

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar