У меня есть повторитель, который отображает финансовые данные и цены на различные акции.
На этой странице у меня также есть кнопка «Экспорт», которая должна взять данные ~ на экране ~ и преобразовать их в CSV для пользователя.
Проблема в том, что после того, как я свяжу свой список «фондовых» сущностей:
List<Stock> stocks = GetStocks()
rptStockList.DataSource = stocks;
rptStockList.DataBind();
Данные не сохраняются при обратной передаче.
Кроме того, данные на этой странице постоянно обновляются через UpdatePanel и элемент управления Timer (каждый раз повторно привязываются к данным). Каждые 30 секунд цены, отображаемые для различных акций в контроллере повторителя, меняются.
Теперь у меня есть кнопка ссылки, в коде которой есть метод события click, который должен экспортировать данные на экране для пользователя. Мне нужно захватить текущие значения для списка акций, последних привязанных к повторителю. Я не могу просто взять последние значения из базы данных, потому что они будут изменены во время между последним обновлением.
protected void lbtnExportStocks_Click(object sender, EventArgs e)
{
// No longer have the stock data used in the repeater control
ExportStocksToExcel();
}
Я знаю, что ASP.NET не сохраняет источник данных для повторителя на обратной передаче, но мне все еще нужно иметь возможность либо заново создать этот список объектов Stock, чтобы я мог отправить им CSV, либо мне нужно сохранить это в некотором роде.
Я не хочу делать что-то слишком сложное с точки зрения производительности, потому что в определенные дни недели это приложение может интенсивно использоваться.
Каково правильное решение ситуации такого типа? Должен ли я перебрать коллекцию «Предметов» Повторителя и реконструировать объекты Stock?