考虑这段代码
DataTable dt = new DataTable() ;
protected void Page_Load(object sender, EventArgs e)
{
dt.Columns.Add("RowIndex");
dt.Columns.Add("FilterText");
}
我将在执行程序期间通过某些数据填充此数据表。但是当我点击一个按钮时,该页面将重新加载代码,我的数据将丢失。 如何阻止Web表单创建新数据表并保存我的数据?
我的控件位于更新面板中。
答案 0 :(得分:0)
为每个请求创建一个新的类实例。如果要将事物从一个请求保存到另一个请求,则需要使用不同的机制。
例如全球。但是除了全局常见问题之外,您还需要处理多个并发请求,从而实现多线程和锁定。
通常的做法是将持久状态存储在数据库中,在处理该请求时加载每个请求的信息。
答案 1 :(得分:0)
您可以使用“查看状态”解决问题..
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
dt = new DataTable();
dt.Columns.Add("RowIndex");
dt.Columns.Add("FilterText");
}
else
{
if (ViewState["vsDT"] != null)
dt= ViewState["vsDT"] as DataTable;
}
}