使用 DevExpress 22.1.3 PivotGrid 结合 .NET 6 MVC 构建统计页面

笑看风云 2024-12-17T08:02:12+08:00
0 0 156

在本篇博客中,我们将探讨如何使用最新的 DevExpress 22.1.3 版本的 PivotGrid 控件结合 .NET 6 MVC 构建一个功能丰富的统计页面。我们将介绍如何创建一个基本的 MVC 网页,并将 PivotGrid 控件集成到该页面中,以展示和分析统计数据。

步骤 1:创建 .NET 6 MVC 项目

首先,我们需要创建一个新的 .NET 6 MVC 项目。在 Visual Studio 中,选择 "创建新项目",然后选择 ".NET Web Application" 模板。在下一个界面中,选择 ".NET 6" 版本,并选择 "MVC" 配置选项。接下来,为项目命名并选择所需的位置,最后点击 "创建"。

步骤 2:安装 DevExpress 22.1.3

在开始使用 DevExpress PivotGrid 控件之前,我们需要先安装相应的 NuGet 包。打开项目的 NuGet 管理器,在搜索框中输入 "DevExpress.MVC" 并安装最新版本的包。确保选择适用于 .NET 6 版本的包。

步骤 3:设置 PivotGrid 控件

在我们的 MVC 项目中,需要添加一个 Controller 和一个 View。在 Controllers 文件夹中,创建一个名为 "StatisticsController" 的新 Controller。在该 Controller 中,创建一个名为 "Index" 的 Action 方法,并在该方法中返回一个 View。

public class StatisticsController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

接下来,在 Views 文件夹中的 "Statistics" 文件夹中创建一个名为 "Index.cshtml" 的视图文件。在该视图文件中,我们将设置 PivotGrid 控件来展示统计数据。

@model IEnumerable<MyApp.Models.StatisticsViewModel>

@{
    ViewBag.Title = "统计页面";
    Layout = null;
}

@using DevExpress.Web.Mvc.UI

<h2>统计页面</h2>

@Html.DevExpress().PivotGrid(
    settings =>
    {
        settings.Name = "pivotGrid";
        settings.CallbackRouteValues = new { Controller = "Statistics", Action = "PivotGridPartial" };
        // 设置数据源
        settings.DataSource = Model;
        // 设置行字段
        settings.Fields.Add(field =>
        {
            field.FieldName = "CategoryName";
            field.Area = DevExpress.XtraPivotGrid.PivotArea.RowArea;
            field.Caption = "类别";
        });
        // 设置列字段
        settings.Fields.Add(field =>
        {
            field.FieldName = "Year";
            field.Area = DevExpress.XtraPivotGrid.PivotArea.ColumnArea;
            field.Caption = "年份";
        });
        // 设置数据字段
        settings.Fields.Add(field =>
        {
            field.FieldName = "Value";
            field.Area = DevExpress.XtraPivotGrid.PivotArea.DataArea;
            field.Caption = "数值";
            field.CellFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
            field.CellFormat.FormatString = "N0";
            field.SummaryType = DevExpress.Data.PivotGrid.PivotSummaryType.Sum;
        });
    }
).Bind(Model).GetHtml()

以上代码中,我们创建了一个 PivotGrid 控件,并将它绑定到一个名为 "pivotGrid" 的实例上。我们设置了数据源为一个名为 "StatisticsViewModel" 的模型。接下来,我们设置了行字段、列字段和数据字段,分别表示展示的类别、年份和数值。我们还设置了数据字段的格式和汇总类型。

步骤 4:返回部分视图

为了实现异步数据加载和更新 PivotGrid 控件,我们需要在 Controller 中添加一个用于返回部分视图的 Action 方法。在我们的 "StatisticsController" 控制器中,添加一个名为 "PivotGridPartial" 的方法,并返回一个 PartialViewResult。

public IActionResult PivotGridPartial()
{
    var model = GetStatisticsData(); // 自定义方法,用于获取统计数据
    return PartialView("_PivotGridPartial", model);
}

接下来,我们需要创建一个名为 "_PivotGridPartial.cshtml" 的部分视图文件。在该文件中,我们将通过使用 PartialView 方法来获取数据并更新 PivotGrid 控件。

@model IEnumerable<MyApp.Models.StatisticsViewModel>

@Html.DevExpress().PivotGrid(settings =>
{
    settings.Name = "pivotGrid";
    settings.ClientSideEvents.BeginCallback = "onPivotGridBeginCallback";
    // 设置数据源
    settings.DataSource = Model;
    // 设置行字段
    settings.Fields.Add(field =>
    {
        field.FieldName = "CategoryName";
        field.Area = DevExpress.XtraPivotGrid.PivotArea.RowArea;
        field.Caption = "类别";
    });
    // 设置列字段
    settings.Fields.Add(field =>
    {
        field.FieldName = "Year";
        field.Area = DevExpress.XtraPivotGrid.PivotArea.ColumnArea;
        field.Caption = "年份";
    });
    // 设置数据字段
    settings.Fields.Add(field =>
    {
        field.FieldName = "Value";
        field.Area = DevExpress.XtraPivotGrid.PivotArea.DataArea;
        field.Caption = "数值";
        field.CellFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
        field.CellFormat.FormatString = "N0";
        field.SummaryType = DevExpress.Data.PivotGrid.PivotSummaryType.Sum;
    });

}).GetHtml()

<script>
    function onPivotGridBeginCallback(s, e) {
        s.PerformCallback();
    }
</script>

步骤 5:获取统计数据

最后,我们还需要通过自定义方法获取统计数据。在 "StatisticsController" 中,添加一个名为 "GetStatisticsData" 的私有方法,并在该方法中返回模拟的统计数据。你可以根据实际需求从数据库或其他数据源中获取真实的统计数据。

private List<StatisticsViewModel> GetStatisticsData()
{
    var data = new List<StatisticsViewModel>
    {
        new StatisticsViewModel { CategoryName = "类别 1", Year = "2021", Value = 100 },
        new StatisticsViewModel { CategoryName = "类别 2", Year = "2021", Value = 200 },
        new StatisticsViewModel { CategoryName = "类别 1", Year = "2022", Value = 150 },
        new StatisticsViewModel { CategoryName = "类别 2", Year = "2022", Value = 250 },
    };

    return data;
}

结论

在本篇博客中,我们学习了如何使用最新版本的 DevExpress 22.1.3 PivotGrid 控件结合 .NET 6 MVC 构建一个统计页面。我们了解了如何设置 PivotGrid 控件、如何返回部分视图以及如何获取统计数据。通过使用 PivotGrid 控件,我们可以轻松地展示和分析大量的统计数据,使我们的应用程序更具可视化和交互性。希望这篇博客对您有所帮助!

参考链接:

相似文章

    评论 (0)