Как передать и получить данные в gridview как переменную сеанса - PullRequest
0 голосов
/ 13 июня 2019

У меня есть таблица жалоб в базе данных, которая отображается в виде сетки после входа в систему. Я уже создал сеанс с именем пользователя, когда работает сеанс с несколькими пользователями для входа в систему в одно и то же время, но в виде таблицы отображаются самые последние действия пользователя ( или жалобы) означает, что представление сетки не работает во время сеанса ... Я связал свое представление сетки через запрос Linq. Скажите, пожалуйста, как я могу создать сеанс в представлении сетки?

// Этот код работает //

Login.aspx

       Session["txtname"] = txtname.Text;
       Session["cust_Dept"] = rec.cust_Dept;

Admin.aspx

if (!IsPostBack)
            {
                Response.Write("<br/>");
                Response.Write("<b>Welcome : </b>  " + Session["txtname"].ToString());

*// This code is working just showing correct name of userLogin  //*

// Теперь это мой запрос, с помощью которого я связал данные .// // Этот код работает просто, но не работает на основе сеанса //

var test10 = (from u in dbContext.ComplaintComments
              join b in dbContext.Complaints on u.comp_Id equals b.comp_Id
              join a in dbContext.Customers on u.cust_Id equals a.cust_Id

              where a.cust_Id == Global.cust_Id
              orderby u.cc_Timestamp descending 
              select u ).ToList();

 ComplaintsGV.DataSource = test10;
 ComplaintsGV.DataBind();

Не отображается ошибка при добавлении сеанса в виде сетки. Он работает так же, как и предыдущий вид сетки на экране.

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Страница 1

 protected void Button1_Click(object sender, EventArgs e)
        {
            var rec = (from r in dc.Customers

                       where r.cust_Login == txtname.Text.Trim() && r.cust_Pwd == txtPass.Text.Trim()
                       select r).SingleOrDefault();


            var depart = (from de in dc.Departments
                          where de.dept_Id == rec.cust_Dept
                          select de).Single();

            if (rec != null && rec.cust_Agent == true)

            {

                Session["txtname"] = txtname.Text;
                Session["txtDepartment"] = depart.dept_Id;
                **Session["cid"] = rec.cust_Id;**

                Response.Redirect("response.aspx");
            }

            else {
                Response.Write("invalid");
            }
        }

Страница 2

 Response.Write("<b>Welcome : </b>  " +Session["txtname"].ToString());
            Response.Write("<br/><b>Department : </b>  " + Session["txtDepartment"].ToString());
            Response.Write("<br/>Customer ID :" +Session["cid"].ToString());





protected void Button1_Click(object sender, EventArgs e)
        {



            Session["cid"].ToString();
            var customerID = (Session["cid"].ToString());




            {
                var test11 = (from u in dc.ComplaintComments

                              join b in dc.Complaints on u.comp_Id equals b.comp_Id
                              join g in dc.ComplaintPriorities on u.cp_id equals g.cp_Id
                              join m in dc.ComplaintStatus on u.cs_Id equals m.cs_Id
                              join t in dc.ComplaintTypes on b.comp_Type equals t.ct_Id
                              join a in dc.Customers on u.cust_Id equals a.cust_Id
                              join x in dc.Departments on a.cust_Dept equals x.dept_Id

                              where a.cust_Id == Convert.ToInt32(Session["cid"].ToString())
                              orderby u.comp_Id ascending
                              select new

                              {
                                  b.comp_Id,
                                  Ticket_Date = b.comp_Date_time,
                                  Issue_Type = t.ct_Name,
                                  Last_Modification = u.cc_Timestamp,
                                  Assigned_To = a.cust_FirstName,
                                  Priority = g.cp_Desc,
                                  Status = m.cs_Name,
                                  Comments = u.cc_Comments,
                                  x.dept_Name
                              }

                                      ).GroupBy(item => item.comp_Id)

                                     .Select(item => item.ToList().First());

                GVTesting.DataSource = test11;
                GVTesting.DataBind();
            }
0 голосов
/ 13 июня 2019

Выполните следующие действия:

  1. В Login.aspx добавить следующую строку:

    Session["cust_Id"] = rec.cust_Id;

  2. В вашем запросе linq используйте Session["cust_Id"] вместо Global.cust_Id (я предполагаю, что идентификатор клиента имеет целочисленный тип - если его нет, тогда преобразование не требуется):

    // before the query, assign the customer id to a variable
    var cust_Id = Convert.ToInt32(Session["cust_Id"]);
    
    // the query becomes:
    var test10 = (from u in dbContext.ComplaintComments
              join b in dbContext.Complaints on u.comp_Id equals b.comp_Id
              join a in dbContext.Customers on u.cust_Id equals a.cust_Id
    
              where a.cust_Id == cust_Id
              orderby u.cc_Timestamp descending 
              select u ).ToList();
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...