private void Bind(ArrayList sids) { DataTable dt = new DataTable(); DataRow dr; Submission s; BaseDb db = DbFactory.ConstructDatabase(); Contest con = db.GetContest(_rp.ContestID); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Время"); dt.Columns.Add("Команда"); dt.Columns.Add("Задача"); dt.Columns.Add("Язык"); dt.Columns.Add("Статус"); dt.Columns.Add("Тест №", typeof(uint)); dt.Columns.Add("Время работы"); dt.Columns.Add("Выделено памяти"); foreach (int sid in sids) { dr = dt.NewRow(); s = db.GetSubmission(sid); dr[0] = sid; dr[1] = HtmlFunctions.BeautifyTimeSpan(s.Time - con.Beginning, true); dr[2] = db.GetUser(s.UID).Fullname; dr[3] = String.Format("<a href='problem.aspx?pid={0}'>{1}</a>", s.PID, db.GetProblemShortName(s.PID)); dr[4] = s.SubmissionLanguage; string pattern = "<a href='viewdata.aspx?mode={0}&sid={1}'>{2}</a>"; if (s.Result.Code == Result.CE) { dr[5] = String.Format(pattern, "comp-report", sid, s.Result.ToHtmlString()); } else if (s.Result.Code == Result.FA) { dr[5] = String.Format(pattern, "error-report", sid, s.Result.ToHtmlString()); } else { dr[5] = s.Result.ToHtmlString(); } if (s.Result.TestNumber > 0) { dr[6] = s.Result.TestNumber; } if (s.Result.Code != Result.CE && s.Result.Code != Result.FA && s.Result.Code != Result.WAIT && s.Result.Code != Result.RU && s.Result.Code != Result.TLE) { dr[7] = Math.Round(s.Result.TimeWorked, 4) + " сек"; } if (s.Result.Code != Result.CE && s.Result.Code != Result.FA && s.Result.Code != Result.WAIT && s.Result.Code != Result.RU && s.Result.Code != Result.MLE) { dr[8] = s.Result.MemoryUsed + " КБ"; } dt.Rows.Add(dr); } db.Close(); statusGrid.DataSource = dt; statusGrid.DataBind(); }