Forum
devexpressi ilk defa kullanıyorum sorunum şu XtraReport1 ile classımı oluşturuyorum aspx sayfamda butonun clicki ile
Merhabalar,
Bende bu ara çılgınlar gibi Devexpress çalışıyorum. Sizin gibi pek çok sorunla uğraşıyorum. Bu durum Cache ile ilgi size bulduğum çözümden bahsedeyim. Profesyonel olmaya bilir ama çalışıyor. Gördüğün gibi önce raporu çalıştırıyorum ve gizliyorum. Daha sonra butona basışdığında visible yapıyorum. Session a stream olarak tutuyorum tabi rapor ilk çalıştırgında. Daha sonra bu sayfayı geri çağırıyorum. Malesef bu şekilde 4 takla atıyorum.
aspx kodu:
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<dx:ReportViewer ID="ReportViewer1" runat="server"
oncachereportdocument="ReportViewer1_CacheReportDocument"
onrestorereportdocumentfromcache="ReportViewer1_RestoreReportDocumentFromCache">
</dx:ReportViewer>
aspx.cs kodu:
using DevExpress.XtraReports.Web;
using System.IO;
//....
XtraReport1 rep;
protected void Page_Load(object sender, EventArgs e)
{
rep = new XtraReport1();
ReportViewer1.Report = rep;
ReportViewer1.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
ReportViewer1.Visible = true;
}
protected void ReportViewer1_CacheReportDocument(object sender, CacheReportDocumentEventArgs e)
{
e.Key = Guid.NewGuid().ToString();
Page.Session[e.Key] = e.SaveDocumentToMemoryStream();
}
protected void ReportViewer1_RestoreReportDocumentFromCache(object sender, RestoreReportDocumentFromCacheEventArgs e)
{
Stream stream = Page.Session[e.Key] as Stream;
if (stream != null)
e.RestoreDocumentFromStream(stream);
}