private void fillStatisticTable() { StatisticTable.Rows.Clear(); TableHeaderRow headerRow = new TableHeaderRow(); TableHeaderCell headerCell = new TableHeaderCell(); headerCell.Text = studentStr; headerRow.Cells.Add(headerCell); foreach (TblStages stage in TeacherHelper.StagesOfCurriculum(curriculum)) { foreach (TblThemes theme in TeacherHelper.ThemesOfStage(stage)) { headerCell = new TableHeaderCell(); headerCell.Text = theme.Name; headerRow.Cells.Add(headerCell); } } headerCell = new TableHeaderCell(); headerCell.Text = totalStr; headerRow.Cells.Add(headerCell); StatisticTable.Rows.Add(headerRow); foreach (TblUsers student in TeacherHelper.GetStudentsOfGroup(group)) { var studentRow = new TableRow(); TableCell studentCell = new TableHeaderCell { Text = student.DisplayName }; studentRow.Cells.Add(studentCell); int pasedCurriculum = 0; int totalCurriculum = 0; foreach (TblStages stage in TeacherHelper.StagesOfCurriculum(curriculum)) { foreach (TblThemes theme in TeacherHelper.ThemesOfStage(stage)) { var res = StatisticManager.GetUserRankForTheme(student.ID, theme.ID); studentCell = new TableCell { HorizontalAlign = HorizontalAlign.Center }; studentCell.Controls.Add(new HyperLink { Text = res.UserRank + "/" + res.ThemeRank, NavigateUrl = ServerModel.Forms.BuildRedirectUrl(new ThemeResultController { BackUrl = string.Empty, ThemeId = theme.ID, CurriculumnName = ServerModel.DB.Load <TblCurriculums>((int)stage.CurriculumRef).Name, StageName = stage.Name, UserId = student.ID }) }); pasedCurriculum += res.UserRank; totalCurriculum += res.ThemeRank; studentRow.Cells.Add(studentCell); } } studentCell = new TableCell { HorizontalAlign = HorizontalAlign.Center, Text = pasedCurriculum + "/" + totalCurriculum }; studentRow.Cells.Add(studentCell); StatisticTable.Rows.Add(studentRow); } if (StatisticTable.Rows.Count == 1) { StatisticTable.Visible = false; Message.Value = noStudents; } }