我有一个数据表,它绑定到页面上的 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;
}
我需要一种方法来在整个网站上保留相同的数据表
DataTable 是相当重的对象,因此不建议将其存储在 ViewState 或 Session 中。您描述的场景是关于缓存数据的。因此,您可以使用 ASP.Net 缓存来存储数据表并在应用程序中重新使用它。请参阅示例此处