AABBbaby

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Web报表设计器如何使用自定义序列化程序类?DevExpress轻松搞定!

下载DevExpress v20.1完整版

DevExpress技术交流群2:775869749      欢迎一起进群讨论

DevExpress Universal Subscription拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。

屡获大奖的软件开发平台DevExpress Universal 2020年全新首发v20.1,最新版拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场景问题。

系统背景
  • 平台:
    • ASP.NET Core
    • ASP.NET Web Forms
    • WinForms
    • WPF
  • 产品:XtraReports Suite

从v18.2开始,使用XPO Data Source 将报表绑定到XPO数据。报表支持XPO数据源的内置序列化,因此您无需实现任何自定义序列化程序。

本文演示如何使用实现IDataSerializer接口的自定义数据源组件序列化器类来序列化报表的数据源组件。当您显示的报表使用的数据源组件无法被报表(DataSet,IList)序列化时,这种方法是可行的。 Web报表设计器仅存储报表定义,因此如果未序列化数据源组件,则无法在回调中恢复该组件,结果设计器的Field List和Preview将为空。

请注意,以下数据源组件是开箱即用的,因此在使用这些组件时不必使用此方法:

使用以下步骤序列化报表的数据源组件:

  • 创建一个实现IDataSerializer接口的自定义数据源组件序列化程序类,实现此接口的方法来从字符串保存(在Serialize方法中)和还原(在Deserialize方法中)您的数据源组件。
  • 启动应用程序时,注册您的自定义数据源组件序列化程序类。 例如,为达到此目的,在应用程序的Global.asax.cs文件中使用Application_Start事件:
protected void Application_Start(object sender, EventArgs e) { 
SerializationService.RegisterSerializer(XPCollectionSerializer.NAME, new XPCollectionSerializer()); 
}
  • 将自定义数据源组件序列化程序名称(您已在上一步中注册)分配给报表,如下所示:
XtraReport report = new CategoriesReport(); 
report.Extensions[SerializationService.Guid] = XPCollectionSerializer.NAME;

在Web报表设计器中打开报表之前,应执行此操作。

重要说明:此方法仅适用于XML序列化。 因此,如果要与序列化的数据源一起保存报表,请使用XtraReport.SaveLayoutToXml方法保存报表的定义。


获取第一手DevExpress咨询,尽在DevExpress中文网!

posted on   AABBbaby  阅读(173)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2019-09-24 Kendo UI for jQuery自定义小部件第一弹!不得不看的入门指南
点击右上角即可分享
微信分享提示