在维护YH过程中遇到了这样一个错误:报表查询到的数据有4页,默认显示第一页,点击下一页,显示正常,再点击下一页,本来应该显示第三页的,结果还是显示第二页,点击末页和首页可以正常显示,输入页码,点击跳转按钮也可以正常显示。很奇怪的问题,但是不得不解决,客户那边有要求嘛。功夫不负有心人,历经“千辛万苦”终于解决了。
对于伸手党来说,解决方案当然是最想先看到的,那就先说说我的解决方案吧:
【解决方案】
源代码:
修改后的代码:
添加代码:
源码中修改:
再测试,OK了。
【解 析】MSDN上查得点击翻页会触发Navigate 事件。CrystalReportViewer 的事件成员:http://msdn.microsoft.com/zh-cn/library/ms227097(v=VS.90).aspx
所以我们只要在CrystalReportViewer 的 Navigate 事件中重新绑定数据源,这样可以从根本上解决问题。
网上有说将Page_Load里的数据源绑定操作,写到Page_Init事件中,这也是一种解决方案,但是这个解决方案有局限性:因为我的数据绑定是要通过界面控件数据获取的,而Page_Init事件是页面初始化的事件,这时的控件都没有赋值,所以条件当然就错了,条件错了结果也就错了。而Navigate 事件则是在Page_Init和Page_Load事件结束后,才进行的,条件可以正常获得,然后再进行绑定数据源即可。
注意:CrystalReportViewer所有的翻页操作都会触发Navigate 事件。我们可以调用CrystalReportViewer的单独翻页方法:
有了这些方法,只要对这些方法进行重写再结合着Navigate 事件即可实现想要的功能了。
分享到:
相关推荐
水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表
水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例水晶报表实例
水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片水晶报表动态显示图片
水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子水晶报表例子
一个VS2005水晶报表精典错误完美解决方法,就是老弹出:“您请求的报表需要更多信息”
实现将图片动态加载到水晶报表中,解决水晶报表添加图片的问题。
水晶报表 ppt 水晶报表 用户指南水晶报表 ppt 水晶报表 用户指南水晶报表 ppt 水晶报表 用户指南水晶报表 ppt 水晶报表 用户指南
水晶报表安装文件及汉化补丁,解决水晶报表客户端错误 水晶报表客户端中文显示
部署水晶报表时的常见问题及解决方案
制作水晶报表显示制作水晶报表显示制作水晶报表显示
水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表水晶报表
Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表Visual C++源代码 160 如何使用水晶报表向导创建报表...
方法二就是在打包CrySatl的安装程序时,可以打包Crystal Report8.5的Runtime dll,而另个一个crviewer.dll则需要使用Crystal Report9.0版本的就可以解决这个问题,这种方法则比较简单方便。补充说明,还有方法三,就是不...
水晶报表数字金额转中文大写,用于水晶报表中将数字金额转换为中文大写的金额
自己完成的一个水晶报表例子程序的源代码,主要实现了在程序中查询数据,并将数据传给水晶报表显示的功能,并且通过参数的方式可以将程序中的信息传递到水晶报表中进行显示。
水晶交叉报表设计视频
水晶报表解决办法
解决vs2005自带水晶报表次数的限制的次数
CrystalDecisions.CrystalReports,水晶报表配置DLL文件,vs2019