Поведение StiWebDesigner по окончании timeout
Добавлено: 15 дек 2011, 07:59
Здравствуйте.
Описание проблемы:
Проект использует аутентификацию форм с заданным временем жизни (timeout) с пролонгированием.
На странице только объект дизайнера, в который подгружается отчет из БД (SQL):
Код:
protected void Page_Load(object sender, EventArgs e)
{
string keyStMode = Page.Request.QueryString.Get("stimulsoft_designerfx");
string keyStGuid = Page.Request.QueryString.Get("stimulsoft_guid");
if (!Page.IsPostBack && keyStMode==null)
{
string skeyid = Page.Request.QueryString.Get("keyid");
int keyid = 0;
if (!String.IsNullOrEmpty(skeyid) && int.TryParse(skeyid, out keyid))
LoadReport(keyid);
}
else
{
if (!String.IsNullOrEmpty(keyStMode) && keyStMode=="SaveReport" && !String.IsNullOrEmpty(keyStGuid))
{
string skeyid = Page.Request.QueryString.Get("keyid");
int keyid = 0;
if (!String.IsNullOrEmpty(skeyid) && int.TryParse(skeyid, out keyid))
LoadReport(keyid);
}
}
}
protected void WebDesigner_SaveReport(object sender, Stimulsoft.Report.Web.StiWebDesigner.StiSaveReportEventArgs e)
{
String body=e.Report.SavePackedReportToString();
//код сохранения в базу
}
Все работает отлично. неоднократно все сохранялось, закрывалась страница и вновь открывалась. Все изменения были на месте.
Но если оставить открытым дизайнер, то после некоторого бездействия, по окончании timeout, естественно, происходит переброс на страницу аутентификации. (Например, при нажатии на кнопку Сохранить.) После успешной аутентификации переброс на страницу с дизайнером (с параметрами SaveReport и guid). Происходит следующая последовательность событий: WebDesigner_SaveReport и Page_Load. В итоге открывается новый пустой отчет. При чем он сохраняется пустым. Т.е. вся работа потеряна.
Что это? Ошибка или неумелое использование Дизайнера? Объясните.
ПО: Stimulsoft Reports.Ultimate 2011.3.1200.0; Win 7 SP1 64; Visual Studio 2008; .Net framework 3.5 SP1
Описание проблемы:
Проект использует аутентификацию форм с заданным временем жизни (timeout) с пролонгированием.
На странице только объект дизайнера, в который подгружается отчет из БД (SQL):
Код:
protected void Page_Load(object sender, EventArgs e)
{
string keyStMode = Page.Request.QueryString.Get("stimulsoft_designerfx");
string keyStGuid = Page.Request.QueryString.Get("stimulsoft_guid");
if (!Page.IsPostBack && keyStMode==null)
{
string skeyid = Page.Request.QueryString.Get("keyid");
int keyid = 0;
if (!String.IsNullOrEmpty(skeyid) && int.TryParse(skeyid, out keyid))
LoadReport(keyid);
}
else
{
if (!String.IsNullOrEmpty(keyStMode) && keyStMode=="SaveReport" && !String.IsNullOrEmpty(keyStGuid))
{
string skeyid = Page.Request.QueryString.Get("keyid");
int keyid = 0;
if (!String.IsNullOrEmpty(skeyid) && int.TryParse(skeyid, out keyid))
LoadReport(keyid);
}
}
}
protected void WebDesigner_SaveReport(object sender, Stimulsoft.Report.Web.StiWebDesigner.StiSaveReportEventArgs e)
{
String body=e.Report.SavePackedReportToString();
//код сохранения в базу
}
Все работает отлично. неоднократно все сохранялось, закрывалась страница и вновь открывалась. Все изменения были на месте.
Но если оставить открытым дизайнер, то после некоторого бездействия, по окончании timeout, естественно, происходит переброс на страницу аутентификации. (Например, при нажатии на кнопку Сохранить.) После успешной аутентификации переброс на страницу с дизайнером (с параметрами SaveReport и guid). Происходит следующая последовательность событий: WebDesigner_SaveReport и Page_Load. В итоге открывается новый пустой отчет. При чем он сохраняется пустым. Т.е. вся работа потеряна.
Что это? Ошибка или неумелое использование Дизайнера? Объясните.
ПО: Stimulsoft Reports.Ultimate 2011.3.1200.0; Win 7 SP1 64; Visual Studio 2008; .Net framework 3.5 SP1