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();
        }