我有一箇中繼器,顯示各種股票的財務數據和價格。如何在回發之後堅持來自轉發器的數據?
在這個頁面上,我還有一個「導出」按鈕,需要將屏幕上的數據〜轉換爲用戶的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