如何在 gridview 中将数据作为会话变量传递和检索

How to pass & retrieve data in gridview as session variable

我有一个投诉 table 数据库在登录后显示在网格视图中 当多个用户同时登录时,我已经创建了一个用户名会话,简单标签会话正在工作,但网格视图显示最近的用户 activity(或投诉)表示网格视图无法通过会话工作...我已通过 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();

在网格视图中添加会话时不显示任何错误。它的工作方式与之前在屏幕上显示的网格视图一样。

按照以下步骤操作:

  1. Login.aspx中添加以下行:

    Session["cust_Id"] = rec.cust_Id;

  2. 在您的 linq 查询中使用 Session["cust_Id"] 而不是 Global.cust_Id(我假设客户 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();
    

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