Страница 1 из 1

Проблема кэширования

Добавлено: 16 янв 2015, 13:40
fromdd
Доброго дня! возникла проблема с кэшированием отчета.

Код: Выделить всё

protected void Page_Load(object sender, EventArgs e)
        {
        DataTable table = GetTable();
        DataSet ds = new DataSet("office");
        ds.Tables.Add(table);
        StiReport stiReport1 = new StiReport();
        stiReport1.Load("тут путь к файлу"); 
        stiReport1.RegData("office", ds);
        stiReport1.Dictionary.Synchronize();
        stiReport1.Compile();
        StiWebViewer1.Report = stiReport1;
        }
В GetTable() запрашивается очень большое количество данных около 10000 строк (через сторонний компонент). При переходе по страницам отчета постоянно запрашиваются данные, что занимает около 10 сек на один запрос, соответственно просматривать данный отчет не комфортно. Пробовал менять свойства RenderMode и CacheMode у компонента stiReport - проблема осталась. При каждом переключении страницы происходит запрос данных, как можно это исправить?

Re: Проблема кэширования

Добавлено: 16 янв 2015, 15:58
HighAley
Здравствуйте.

Установите режим RenderMode="AjaxWithCache", но при переходе на другую страницу отчета (или, например, изменении зума отчета) срабатывает обработчик события Page_Load, что влечет за собой выполнение всей логики страницы заново. Есть способ обойти такое.

Код: Выделить всё

if (Page != null && !Page.IsPostBack)
{
    .....
    ваш код
    .....
}
Спасибо.