Member 8583441 Ответов: 0

Я хочу привязать данные к gridview, используя объекты сеанса в ASP.NET


у меня есть несколько объектов сеанса, получаемых с предыдущей страницы, и эти данные должны быть привязаны к gridview на другой странице. предыдущая страница не имеет никакого gridview. При срабатывании события нажатия кнопки все данные сохраняются в объектах сеанса, а затем привязываются к gridview. когда данные привязываются к gridview с помощью объектов сеанса, то они перенаправляются на страницу ошибки, где я делаю неправильно. почему мне нужен объект сеанса, так это то, что в моей таблице только 5 столбцов, но я требую показать пользователю 11 столбцов

Что я уже пробовал:

if (!IsPostBack)
{
    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[11] { new DataColumn("UserName"), new DataColumn("Subject"), new DataColumn("Exam Date"), new DataColumn("Score"), new DataColumn("Pass Mark"), new DataColumn("Total Marks"), new DataColumn("Number of Answered Questions"), new DataColumn("Number of UnAnswered Questions"), new DataColumn("Correct Choice Entered"), new DataColumn("Wrong Choice Entered"), new DataColumn("Status") });
    ViewState["ExamResults"] = dt;

    // Checking whether Viewstate is null or not
    if (ViewState["ExamResults"] != null)
        BindGridView();
    else
    {
        Panel_myresultshow_warning.Visible = true;
        lblMyResultsShowWarning.Text = "Sorry! There is no result of yours in this application";
    }

    InsertIntoGridView();
}

protected void BindGridView()
{
    GvExamResults.DataSource = (DataTable)ViewState["ExamResults"];
    GvExamResults.DataBind();
}

protected void InsertIntoGridView()
{
    DataTable dt = (DataTable)ViewState["ExamResults"];
    dt.Rows.Add(SUserName, Session["Subject"].ToString(), Session["DateOfExam"].ToString(), Session["MarksObtained"].ToString(), Session["PassMark"].ToString(), Session["TotalMarks"].ToString(), Session["AnsweredCount"].ToString(), Session["UnAnsweredCount"].ToString(), Session["CorrectAnswerCount"].ToString(), Session["WrongAnswerCount"].ToString(), Session["Status"].ToString());
    ViewState["ExamResults"] = dt;

   // Checking whether Viewstate is null or not
   if (ViewState["ExamResults"] != null)
       BindGridView();
   else
   {
       Panel_myresultshow_warning.Visible = true;
       lblMyResultsShowWarning.Text = "Something went wrong. Please try after sometime later</br> Contact you developer for this problem";
   }
}

0 Ответов