none
Adicionar colunas dinamicamente em uma grid ASP .NET, mantendo linhas para criar uma visão de diário de classe. RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Estou trabalhando em um projeto que é o Diário de Classe Eletrônico. No caso a ideia é que o professor possa lançar a aula (data e conteúdo) e depois as presenças/faltas dos alunos matriculados.

    A parte de lançamento de aulas e presenças já está ok e atualmente tenho a seguinte estrutura de banco para essa funcionalidade:

    MER Diário de Classe

    Desta forma para cada aula, eu posso lançar as presenças/faltas para cada aluno. Até aqui está ok.

    O problema está sendo na hora de apresentar isso na tela em forma de grid, no caso eu preciso por exemplo que a coluna "Aluno" se mantenha fixa, e ir adicionando as colunas de aulas dinamicamente.

    Estou tentando montar esta grid com o trecho de código abaixo:

            protected void MontarGridFrequencia() {
    
                if ((listaFrequencia) != null) {
                    Int32 codFrequencia = 0;
                    Int32 i = 0;
                    foreach (FrequenciaVO item in listaFrequencia) {
                        if (i == 0) {
                            codFrequencia = item.CodFrequencia;
                            i = 1;
                            if (codFrequencia == item.CodFrequencia) {
                                BoundField boundfield = new BoundField();
                                boundfield.DataField = "CodSituacaoFrequencia";
                                boundfield.HeaderText = item.DtAula;
                                this.grdFrequencia.Columns.Add(boundfield);
                            }
                        }
                        else {
                            if (codFrequencia != item.CodFrequencia) {
                                codFrequencia = item.CodFrequencia;
                                BoundField boundfield = new BoundField();
                                boundfield.DataField = "CodSituacaoFrequencia";
                                boundfield.HeaderText = item.DtAula;
                                this.grdFrequencia.Columns.Add(boundfield);
                            }
    
                        }
    
    
                    }
                }
    
                this.grdFrequencia.DataSource = listaFrequencia;
                this.grdFrequencia.DataBind();
            
            }

    Contudo, ao montar a grid, o sistema retorna repetições das linhas de alunos a cada aula, de modo que por exemplo se eu tenho duas aulas lançadas para uma turma de 5 alunos, a grid retorna 10 linhas de alunos, e as duas colunas de aulas.

    Gostaria de saber se alguém tem uma ideia de como solucionar este problema ou se já passou por uma demanda parecida.

    Desde já agradeço pelo apoio


    quinta-feira, 17 de julho de 2014 20:13