将信息保留在DataTable中

问题描述 投票:0回答:1

我有一个数据表,它绑定到页面上的 Gridview 以显示数据。 然后我有一个“添加新”按钮,可以在 Bootstrap 模态中打开一个用户控件。

这个 Addnew 用户控件需要有一个表单来输入详细信息

  • 身份证
  • 地址
  • 状态
  • 城市
  • 国家

这些详细信息已添加到数据表中。

目前还没有涉及数据库。

DataTable 启动,然后添加一些字符串类型列,然后添加行,所有这些都在 Webform 的页面加载中,而不是有一个 AddNew 按钮,该按钮打开一个 UserControl,在此 UserControl 中有标签和文本框和一个添加按钮,我需要在该用户控件的 Web 表单中启动的数据表中添加一行。

以下是Webform上的代码

   protected void Page_Load(object sender, EventArgs e)
   {
   //if (!IsPostBack)
   //{
     DataTable mytestdata = new DataTable();
     Session["DataTable"] = mytestdata;

     if (mytestdata.Columns.Count == 0)
     {
       mytestdata.Columns.Add("ID", typeof(string));
       mytestdata.Columns.Add("Address 1", typeof(string));
       mytestdata.Columns.Add("Street", typeof(string));
       mytestdata.Columns.Add("City", typeof(string));
       mytestdata.Columns.Add("Post Code", typeof(string));
       mytestdata.Columns.Add("Country", typeof(string));
      }

     if (mytestdata.Rows.Count == 0)
     {
       mytestdata.Rows.Add("1341", "Number 49", "Phibsboro", "Dublin 2",             
       "11111", "Ireland");
       mytestdata.Rows.Add("1241", "Number 46", "Dundrum", "Dublin 6",    
       "124354", "uk");
       mytestdata.Rows.Add("1351", "Number 43", "Phibsboro", "Dublin 7",  
       "23445", "Ireland");
       mytestdata.Rows.Add("1141", "Number 59", "Dundrum", "Dublin 8",  
       "11111", "uk");
       mytestdata.Rows.Add("1234", "Number 69", "Dundrum", "Dublin 9",  
       "23432", "Ireland");
       mytestdata.Rows.Add("1234", "Number 29", "Phibsboro", "Dublin 10",  
       "11111", "uk");
       mytestdata.Rows.Add("4312", "Number 52", "Dundrum", "Dublin 18",     
       "23422", "Ireland");

       mytestdata.Rows.Add("5467", "Number 19", "Dundrum", "Dublin 19",  
      "11111", "Ireland");
       mytestdata.Rows.Add("4352", "Number 21", "Phibsboro", "Dublin 24",  
       "125632", "uk");
       mytestdata.Rows.Add("6543", "Number 15", "Dundrum", "Dublin 19",   
       "11111", "Ireland");
       mytestdata.Rows.Add("5785", "Number 24", "Phibsboro", "Dublin 12",   
       "11111", "uk");
     }

     mytestdata = (DataTable)Session["DataTable"];
     ucModalCrud._dtCRUD = mytestdata;

     ucModalCrud._pathToAddViewRecordUserControl =                             "~/PortalFramework/Shared/ModalCRUD/ForTesting/ucViewRecordDetails.ascx";
     ucModalCrud._pathToAddNewRecordUserControl = "~/PortalFramework/Shared/ModalCRUD/ForTesting/ucAddDetails.ascx";

//}

}

以下是用户控件中的代码

protected void btnAdd_Click(object sender, EventArgs e){

    DataTable mytestdata = new DataTable();
    mytestdata = (DataTable)Session["DataTable"];

    mytestdata.Rows.Add(txtID.Text, txtAddress1.Text, txtStreet.Text,    
    txtCity.Text, txtPostCode.Text, txtCountry.Text);
    Session["DataTable"] = mytestdata;

}

我需要一种方法来在整个网站上保留相同的数据表

c# .net datatable
1个回答
0
投票

DataTable 是相当重的对象,因此不建议将其存储在 ViewState 或 Session 中。您描述的场景是关于缓存数据的。因此,您可以使用 ASP.Net 缓存来存储数据表并在应用程序中重新使用它。请参阅示例此处

© www.soinside.com 2019 - 2024. All rights reserved.