我有一个中继器,显示各种股票的财务数据和价格。如何在回发之后坚持来自转发器的数据?
在这个页面上,我还有一个“导出”按钮,需要将屏幕上的数据〜转换为用户的CSV格式。
的问题是,在我的数据绑定我的“股票”实体名单:
List<Stock> stocks = GetStocks()
rptStockList.DataSource = stocks;
rptStockList.DataBind();
的数据不会保留在回发。
此外,此页上的数据不断通过UpdatePanel和Timer控件更新(每次重新绑定数据)。每30秒钟,中继控制器中各种股票的价格变化。
现在,我有一个链接按钮,它在代码隐藏方面有一个点击事件方法,它应该在屏幕上为用户导出〜数据。我需要抓住最后一个数据库股票列表的当前值到中继器。我不能简单地从数据库中获取最新值,因为这些值在上次刷新之间的时间内会发生变化。
protected void lbtnExportStocks_Click(object sender, EventArgs e)
{
// No longer have the stock data used in the repeater control
ExportStocksToExcel();
}
我知道,ASP.NET不会持续在后回中继器的数据源,但我需要仍然能够要么重新构建股票的实体名单,所以我可以把他们的CSV或者我需要以某种方式坚持下去。
我不想在性能方面做任何过于沉重的事情,因为在一周中的某些日子里,这个应用程序可能会有一些沉重的用法。
这种情况的适当解决方案是什么?我是否应该遍历Repeater的“Items”集合并重建股票实体?
我认为你需要发布一些关于'ExportStocksToExcel()'的具体信息,因为转发器不应该丢失绑定到它的数据(假设你没有禁用控件或页面上的viewstate),因为viewstate 。但是,如果这是您的预期(或至少以任何合理的方式),则无法从中继器读取数据源中的数据。 – 2010-07-01 18:58:32
@Chris Marisic,因此,根据我上面写的内容,您将如何亲自从中继器获取数据以输出CSV? – Darwin 2010-07-01 19:02:09
@Chris Marisic,截至目前,所有ExportStocksToExcel()都会设置正确的标题和内容类型,然后我将写出一份有关CSV数据的响应。但是,我很难弄清楚如何将数据恢复出来。 – Darwin 2010-07-01 19:03:04