我有数据表绑定到页面上的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的方法
答案 0 :(得分:0)
DataTable是非常重的对象,不建议将其存储在ViewState或Session中。您描述的方案是关于缓存数据。因此,您可以使用ASP.Net缓存来存储数据表并在应用程序中重用它。查看示例here