在DataTable中保留信息

时间:2015-05-11 10:48:20

标签: c# .net datatable

我有数据表绑定到页面上的Gridview以显示数据。 然后我有一个Add new按钮,它在Bootstrap Modal中打开一个Usercontrol。 此Addnew用户控件需要有一个表单来输入详细信息

ID 地址 州 市 国家

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

现在没有涉及数据库。

启动DataTable然后添加几个字符串类型列然后添加行,所有这些都在Webform的Pageload中,而不是AddNew按钮,在此UserControl中打开UserControl,有标签和Textboxes以及一个添加按钮,I需要在此Usercontrol中的Webform中启动的数据表中添加一行。

以下是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";

//}

}

以下是usercontrol中的代码

   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;

   }

我需要一种在整个网站上保留相同DataTable的方法

1 个答案:

答案 0 :(得分:0)

DataTable是非常重的对象,不建议将其存储在ViewState或Session中。您描述的方案是关于缓存数据。因此,您可以使用ASP.Net缓存来存储数据表并在应用程序中重用它。查看示例here