如何防止asp.net页面重置数据表?

时间:2015-09-27 07:02:51

标签: asp.net ajax visual-studio-2013 datatable

考虑这段代码

    DataTable dt = new DataTable() ; 
    protected void Page_Load(object sender, EventArgs e)
    {
            dt.Columns.Add("RowIndex");
            dt.Columns.Add("FilterText");
    }

我将在执行程序期间通过某些数据填充此数据表。但是当我点击一个按钮时,该页面将重新加载代码,我的数据将丢失。 如何阻止Web表单创建新数据表并保存我的数据?

我的控件位于更新面板中。

2 个答案:

答案 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;
        }
    }