2016-02-18 5 views
0

Как вы могли бы получить Datatable или Dataset в сеанс? Когда клиент подключается к приложению, я хочу, чтобы клиент провел один и тот же сеанс с gridview в течение 30 минут до тайм-аута. Как бы вы это сделали? Я посмотрел несколько примеров на W3 schools и asp.net-TutorialsКак получить Datatable или Dataset в сеанс?

Но я просто не могу начать, я не уверен на сессию DataTable или DataSet для одного. Это первый раз, когда я использую Session с ASP.Net. Любые отзывы или советы действительно оценены!

using System; 
using DBComponentsLibrary; 
using DBComponentsLibrary.NameDataSetTableAdapters; 
using System.Web.UI.WebControls; 

namespace Name 
{ 
    public partial class TestWebFormView : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
       DataBind(); 
       loadGridData(); 
     } 
     private void loadGridData() 
     { 
      NameTableAdapter TA = new NameTableAdapter(); 
      NameDataSet rds = new NameDataSet(); 
      NameDataSet.NameDataTable Rdt = new NameDataSet.NameDataTable(); 
      TA.Fill(Rdt); 
      GridView.DataSource = Rdt; 
      GridView.DataBind(); 
      GridView.Rows[0].Cells[0].Visible = true; 
     } 
     protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      GridView.PageIndex = e.NewPageIndex; 
      GridView.DataBind(); 
     } 
     protected void btnLastPage_Click(object sender, EventArgs e) 
     { 
      if (GridView.PageCount > 0) 
      { 
       GridView.SetPageIndex(GridView.PageCount - 1); 
      } 
     } 
     protected void btnExport_Click(object sender, EventArgs e) 
     { 
      //Will be implemented soon. 
     } 
    } 
} 
+0

Похоже, что вы действительно спрашиваете 2 или 3 отдельных вопросов. 1. Получение переменной сеанса для хранения набора данных? 2. Время ожидания сеанса. 3. Время входа в систему? Пожалуйста, покажите пример своей сетки и то, что вы пытаетесь выполнить? Я думаю, что я могу вам помочь, но я не совсем понимаю, каково ваше намерение? – DaniDev

+1

@ DaniDev Добавленное конечное намерение кода backend - это так, что клиент входит в веб-приложение с окнами auth и загружает сетку один раз, а не каждый раз, когда используется функция. (Должен надеяться, что многое поможет с успехом) – Froxer

ответ

1

В web.config установить тайм-аут сеанса в течение 30 минут

<configuration> 
<system.web> 
    <sessionState mode="InProc" 
       cookieless="false" 
       timeout="30"/> 
    </sessionState> 
</system.web> 
</configuration> 

В приложении

if(Session["YourDataSet"] == null) 
    Session["YourDataSet"] = GetDataSetFromSomeWhere(); 

YourGridView.DataSource = (DataSet)Session["YourDataSet"]; 
YourGridView.DataBind(); 
+0

Только то, что я искал, чтобы начать, принятый в качестве ответа. – Froxer

2

Пожалуйста, найти код, надеюсь, что это даст вам старт:

 if (Session["SeesionName"] != null) 
     { 
      DataTable dt = (DataTable)Session["SeesionName"]; 
      DataRow row = dt.NewRow(); 
      row["SNO"] = dt.Rows.Count + 1; 
      row["EmpId"] = empId; 
      dt.Rows.Add(row); 
      gdSource.DataSource = dt; 
      gdSource.DataBind(); 
      Session["SeesionName"] = dt; 
     } 
     else 
     { 
      DataTable dt = new DataTable(); 
      dt.Columns.Add("SNO", typeof(int)); 
      dt.Columns.Add("EmpId", typeof(int)); 
      DataRow row = dt.NewRow(); 
      row["EmpId"] = empId; 
      row["SNO"] = 1; 
      dt.Rows.Add(row); 
      gdSource.DataSource = dt; 
      gdSource.DataBind(); 
      Session["SeesionName"] = dt; 
     } 
+0

Помогли также решению – Froxer

Смежные вопросы