none
Criando uma Grade com o DataGrid RRS feed

  • Pergunta

  •  

    Pessoal, estou com dúvidas sobre como criar uma grade de produtos (Tamanho x Cor).

    Eu gostaria de utilizar o componente DataGrid nativo do .Net Compact Framework 2.0 para realizar tal tarefa.

    Vou criar um formulário para adicionar produtos, mas estes produtos variam em Tamanho e cor, portanto, preciso de uma Grade. Mas para construir esta grade tenho que acrescentar as colunas e as linhas dinamicamente.

    Minha dúvida é como griar um DataGrid vazio com os itens da grade como um rótulo no DataGrid?

     

    Exemplo:

         P  M  G

    01 1   3

    02           2

     

    Aqui selecionei 1 unidade de um determinado produto na cor 01 e para o tamanho P, depois mais 3 unidades do tamanho M na cor 01 e assim por diante.

    Eu já vi e utilizei uma demo de um componente SmartGrid da resco que é bem simples de manipulá-lo, mas é pago e é relativamente caro.

    Será que alguém pode me dar uma ajuda de como resolver este problema no DataGrid ou até mesmo em algum outro componente?

     

    Até a próxima...

    segunda-feira, 27 de agosto de 2007 12:30

Respostas

  • Então, sabe como é, até dá pra conseguir, só que é trampo heim..... vc poderia fazer o seguinte, seta a propriedade RowHeadersVisible para false, assim ele não vai exibir o header da linha, e utilizando o evento Paint do grid, voce pinta o fundo da primeira coluna para dar um destaque nela..... o Datagrid é bem limitado se comparado com o do Desktop ou Web, a saída mais rápida mesmo é procurar controle de terceiros.....

     

    Abraços

    segunda-feira, 27 de agosto de 2007 20:12

Todas as Respostas

  • Voce já tntou fazer o seguinte :

    - Crie 2 classes com a estrutura :

    Code Snippet

    public class Grade
    {
        private string _P;

        public string P
        {
            get { return _P; }
            set { _P = value; }
        }
        private string _M;

        public string M
        {
            get { return _M; }
            set { _M = value; }
        }
        private string _G;

        public string G
        {
            get { return _G; }
            set { _G = value; }
        }
        private string _GG;

        public string GG
        {
            get { return _GG; }
            set { _GG = value; }
        }
        private string _Cor;

        public string Cor
        {
            get { return _Cor; }
            set { _Cor = value; }
        }

    }
    public class ListaGrade: List<Grade>
    {

    }

     

     

    Utilize a classe ListaGrade como origem do DataGrid.DataSource, e formate a coluna Cor para não ser exibida e nem exibir o "cabeçalho" das linhas....

    agora gerar as colunas de forma dinâmica só se voce montar tudo na query, e utilizar um DataTable para popular o grid.

    É isso ou eu viajei ?

    segunda-feira, 27 de agosto de 2007 14:59
  • Julio,

     

    É mais ou menos isso.

    Eu já tenho até estas classes montadas, o meu problema é definir os itens das linhas. Pois o usuário deve visualizar o rótulo das colunas e das linhas. No rótulo das colunas aparecer os tamanhos e nas linhas a cor, por exemplo.

     

    Existe alguma forma de mostrar e editar os rótulos das linhas de um DataGrid?

     

    segunda-feira, 27 de agosto de 2007 16:39
  • Então, sabe como é, até dá pra conseguir, só que é trampo heim..... vc poderia fazer o seguinte, seta a propriedade RowHeadersVisible para false, assim ele não vai exibir o header da linha, e utilizando o evento Paint do grid, voce pinta o fundo da primeira coluna para dar um destaque nela..... o Datagrid é bem limitado se comparado com o do Desktop ou Web, a saída mais rápida mesmo é procurar controle de terceiros.....

     

    Abraços

    segunda-feira, 27 de agosto de 2007 20:12