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:

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