DevExpress技术交流群2:775869749 欢迎一起进群讨论 屡获大奖的软件开发平台DevExpress Universal 2020年全新首发v20.1,最新版拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场景问题。要体验?点击下载>> 系统背景- 平台:
- ASP.NET Core
- ASP.NET Web Forms
- WinForms
- WPF
- 产品:XtraReports Suite
本文演示如何使用实现IDataSerializer接口的自定义数据源组件序列化器类来序列化报表的数据源组件。当您显示的报表使用的数据源组件无法被报表(DataSet,IList)序列化时,这种方法是可行的。 Web报表设计器仅存储报表定义,因此如果未序列化数据源组件,则无法在回调中恢复该组件,结果设计器的Field List和Preview将为空。 请注意,以下数据源组件是开箱即用的,因此在使用这些组件时不必使用此方法: 使用以下步骤序列化报表的数据源组件: - 创建一个实现IDataSerializer接口的自定义数据源组件序列化程序类,实现此接口的方法来从字符串保存(在Serialize方法中)和还原(在Deserialize方法中)您的数据源组件。
- 启动应用程序时,注册您的自定义数据源组件序列化程序类。 例如,为达到此目的,在应用程序的Global.asax.cs文件中使用Application_Start事件:
[C#] 纯文本查看 复制代码 protected void Application_Start(object sender, EventArgs e) {
SerializationService.RegisterSerializer(XPCollectionSerializer.NAME, new XPCollectionSerializer());
}
- 将自定义数据源组件序列化程序名称(您已在上一步中注册)分配给报表,如下所示:
[C#] 纯文本查看 复制代码 XtraReport report = new CategoriesReport();
report.Extensions[SerializationService.Guid] = XPCollectionSerializer.NAME;
在Web报表设计器中打开报表之前,应执行此操作。
|