Это мой код .Net 2 ASP.Net, который использовался при размещении в Win 2000 и IIS3.Объект Crystal Report не обновляется после IsPostBack
'В Page_Load, если это не PostBack, тогда удалите кешированный объект отчета, чтобы впоследствии этот код был восстановлен.
Под Win2000 и IIS3, когда я нажимал ссылку для загрузки страницы в свежем виде, в Page_Load он вызывал Session.Remove («ReportObject»), а затем в FillRptParams понимал, что Session («ReportObject») «Nothing» и перезагружает его.
Первоначально я ввел весь код сеанса, чтобы убедиться, что между запросами страницы Crystal Report он не будет продолжать работать с БД, он просто вытащил ReportObject из переменной сеанса на следующей странице.
Теперь я переключился на Win 2003 и IIS6. Я ВСЕГДА получаю ОБРАБОТАННЫЙ отчет, даже когда вы нажимаете на ссылку, как я привык, что по сути заставляет IsPostBack быть ложным и удалять объект Session.
Я надеюсь, что некоторые настройки в IIS6 могут заставить его вести себя так, как раньше.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
Session.Remove("ReportObject")
End If
End Sub
Sub FillRptParams(ByVal snavcode As String, Optional ByVal CrystalOrPDForEXCEL As String = "")
If Not Session("ReportObject") Is Nothing Then
bReportCached = True
Else
bReportCached = False
End If
oSqlCmd = New SqlCommand
If bReportCached Then
orpt = Session("ReportObject")
Else
orpt = New rptUsageSummaryNew
oSqlCmd.CommandText = "HOSP_RPT_UsageAllSummary"
oDS = oDataAccess.GetReportDataSet(Session("Group"), oSqlCmd)
orpt.SetDataSource(oDS)
'Cache the report object so we don't have to load it again next time
Session.Remove("ReportObject")
Session.Add("ReportObject", orpt)
End If
End Sub
Hi. Спасибо за это. Page_Init запускается при каждом запуске страницы и удалении объекта Session. Мне нужно, чтобы он обнаружил PostBack, когда щелкнул элемент управления навигацией страницы Crystal Report и оставил объект Session в такте. –
Зачем вам нужно воссоздать объект отчета? CR предназначен для создания один раз, а затем кэшируется для перехода между страницей – Furtiro