问题描述
我的web项目中需要用到把数据按照word的格式打印出来的功能,用的xtrareport做的报表。页面打开的时候报表正常,但是我通过按钮触发事件重新绑定数据源的时候,页面始终没有变化.我跟踪代码看了下数据是传到报表了,感觉是DevExpress.XtraReports.Web.ReportViewer没有刷新。事件的代码如下DataSet1ds=newDataSet1();//强类型数据集DataSet1.xsdds=getdata();XtraReport1xr=newXtraReport1(ds);this.ReportViewer1.Report=xr;报表那边传dataset重构什么的是参考数据能跟踪到报表那边,但是页面就是没变化,我是web的,例子好少,官方的例子完全看不懂...this.ReportViewer1.DataBind();this.ReportViewer1.Report.CreateDocument();都试了。。没效果。网络上的那些例子大部分是winform的.ShowPreview.ShowPreviewDialog不是web用的.....这也不是.net自带的reportViewer,可以用RefreshReport刷新
解决方案
解决方案二:
没人用XtraReport吗...........
解决方案三:
仔细调了下事件调用到CreateDocument();的时候就已经刷新了,但是刷新完把report绑定上reportviewer之后会触发XtraReport1.Designer中的Dispose方法,并且参数为true,把报表给清除了,然后会第二次调用page_load刷新下页面。.如果把这些执行过程放在page_load中,最后可以正常显示,但是会2次进page_load生成report,然后2次调用Dispose方法。第2次Dispose方法没有清除报表///Cleanupanyresourcesbeingused.///</summary>///<paramname="disposing">trueifmanagedresourcesshouldbedisposed;otherwise,false.</param>protectedoverridevoidDispose(booldisposing){if(disposing&&(components!=null)){components.Dispose();}base.Dispose(disposing);}