小编Dar*_*win的帖子

如何在回发后保留转发器中的数据?

我有一个转发器,显示各种股票的财务数据和价格.

在这个页面上,我还有一个"导出"按钮,需要在屏幕上获取数据〜并将其转换为用户的CSV.

问题是,在我对"Stock"实体列表进行了数据绑定之后:

List<Stock> stocks = GetStocks()
rptStockList.DataSource = stocks;
rptStockList.DataBind();
Run Code Online (Sandbox Code Playgroud)

回发时不会保留数据.

此外,此页面上的数据通过UpdatePanel和Timer控件(每次重新数据绑定)不断更新.每隔30秒,转发器控件中各种库存的价格会发生变化.

现在,我有一个链接按钮,在代码隐藏中有一个click事件方法,它应该在屏幕上为用户导出〜数据.我需要获取最后数据绑定到转发器的股票列表的当前值.我不能简单地从数据库中获取最新值,因为这些值将在上次刷新之间的时间内更改.

protected void lbtnExportStocks_Click(object sender, EventArgs e)
{
    // No longer have the stock data used in the repeater control
    ExportStocksToExcel();
}
Run Code Online (Sandbox Code Playgroud)

我知道ASP.NET不会在post-back上保留转发器的数据源,但是我仍然需要重新构建这个Stock实体列表,这样我就可以将它们发送给CSV或者我需要将它保留在某些办法.

我不想做任何在性能方面过于繁重的事情,因为在一周的某些日子里,这个应用程序会有一些繁重的用法.

这种情况的正确解决方案是什么?我应该遍历Repeater的"Items"集合并重建Stock实体吗?

asp.net ajax postback repeater

7
推荐指数
1
解决办法
5969
查看次数

标签 统计

ajax ×1

asp.net ×1

postback ×1

repeater ×1