本文档说明了如何在 Web 报表中使用书签来为每个页面实现文档地图,从而提供客户端导航。

要在 ASP.NET 应用程序中实现文档地图,则执行下列操作。

  1. 启动 MS Visual Studio (2005、2008 或 2010),并且新建一个或者打开一个现有的 ASP.NET Web 应用程序

  2. 添加新空白报表 到应用程序中,并 把报表绑定到数据,例如 Categories 表 (属于 Northwind 示例数据库 —— nwind.mdb 文件,位于 DevExpress 演示 的安装目录中)。

  3. CategoryNameDescription 字段从 Field List(字段列表) 窗口中拖放到报表的 Detail 带区。

    同时,为了在报表中实现书签,选中 XRLabel (被绑定到 CategoryName 字段) 控件,并把它的 XRControl.Bookmark 属性绑定到相同的字段。

  4. 单击设计面板底部的 设计 标签页,切换到设计模式,然后把 ReportToolbarReportViewer 控件从 DX.10.2: Reporting 工具栏标签页中拖放到此页面上。

  5. 为了创建一个文档地图,也从 DX.10.2: Navigation & Layout 工具箱标签页中,把 ASPxSiteMapControl 控件拖放到此页面上。

  6. 单击 ASPxSiteMapControl1 的智能标记,展开 Choose Data Source(选择数据源) 下拉列表,并单击 New Data Source(新建数据源)... 链接。

  7. 在被调用的 Data Source Configuration Wizard(数据源配置向导) 中,选择 ASPxSiteMapDataSource 模板,并单击 OK 按钮。

  8. 现在切换到 Default.aspx 页面的 code-behind(代码隐藏),并且调用 SiteMapBookmarkFiller.FillSiteMapWithBookmarks 方法,来把报表标签装载到 ASPxSiteMapControl 的数据源。

    C#CopyCode image复制代码
    using System;
    using DevExpress.XtraReports.Web;
    // ...
    
    protected override void OnPreRender(EventArgs e) {
        SiteMapBookmarkFiller.FillSiteMapWithBookmarks(ASPxSiteMapDataSource1, ReportViewer1);
        base.OnPreRender(e);
    }
    
    Visual BasicCopyCode image复制代码
    Imports System
    Imports DevExpress.XtraReports.Web
    ' ...
    
    Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
        SiteMapBookmarkFiller.FillSiteMapWithBookmarks(ASPxSiteMapDataSource1, ReportViewer1)
        MyBase.OnPreRender(e)
    End Sub
    

运行此应用程序,并查看结果。

CodeCentralShow Me

在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E2336。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。