【问题标题】:How to prevent asp.net page from reseting data table?如何防止asp.net页面重置数据表?
【发布时间】:2015-12-24 15:46:59
【问题描述】:

考虑这段代码

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

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

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

【问题讨论】:

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


    【解决方案1】:

    为每个请求创建一个新的类实例。如果您想将内容从一个请求保存到另一个请求,则需要使用不同的机制。

    例如全局。但除了全局问题之外,您还需要处理多个并发请求,因此需要处理多线程和锁定。

    通常的方法是将持久状态存储在数据库中,在开始处理该请求时为每个请求加载信息。

    【讨论】:

    • @Behnam:在客户端更难:HTTP 是无状态的。
    【解决方案2】:

    您可以使用视图状态来解决问题..

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

    【讨论】:

    • 不错的答案。 @RAVI VAGELA
    猜你喜欢
    • 2016-07-04
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    相关资源
    最近更新 更多