在Blazor中使用Chart.js生成图表

1. 在Blazor中使用Chart.js

  1. 首先,从Chart.js官方网站下载Chart.js库文件。
    推荐下载这个构建好的版本https://cdnjs.com/libraries/Chart.js,最新版是v4.2.1

  2. 在Blazor项目中把刚刚下载好的Chart.js放到wwwroot目录下。

  3. 在Blazor项目中的Pages文件夹下_Host.cshtml文件中添加以下代码:

    <script src="_framework/blazor.webassembly.js"></script>
    <-- 添加下面这句 -->
    <script src="~/Chart.js"></script>
    
  4. 在Blazor组件中使用Chart.js,需要在组件中添加以下代码:
    注意!这个canvas标签的id非常重要!后面调用js的时候要用到它!
    在组件顶部添加一行代码,注入JSRuntime

     @page "/"
     @inject IJSRuntime JS
    
     <PageTitle>BlazorWithChartJS</PageTitle>
     <p>
         <h2>
             在Blazor中使用 
             <code><strong>JavaScript</strong></code>
             调用
             <code><strong>Chart.JS</strong></code>
             绘制曲线图
         </h2>
     </p>
       
     <div class="chart">
         <canvas id="AnimationsChart"></canvas>
     </div>
    
  5. Index组件的@code代码块中,添加以下C#代码:

        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                var jsmodule = $"./Pages/Index.razor.js";
                var jSObject = await JS.InvokeAsync<IJSObjectReference>("import", jsmodule);
                await jSObject.InvokeVoidAsync("animationsChart");
            }
            await base.OnAfterRenderAsync(firstRender);
        }
    
  6. 接下来我们在组件所在目录下创建一个当前组件隔离的js文件Index.razor.js,在组件的代码块中,添加以下JavaScript代码:

    export function animationsChart() {
            const ctx = document.getElementById('AnimationsChart');
    
            const data = {
                labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
                datasets: [{
                    label: 'Looping tension',
                    data: [65, 59, 80, 81, 26, 55, 40],
                    fill: false,
                    borderColor: 'rgb(75, 192, 192)',
                }]
            };
    
            const config = {
                type: 'line',
                data: data,
                options: {
                    animations: {
                        tension: {
                            duration: 1000,
                            easing: 'linear',
                            from: 1,
                            to: 0,
                            loop: true
                        }
                    },
                    scales: {
                        y: {
                            min: 0,
                            max: 100
                        }
                    }
                }
            };
    
            new Chart(ctx, config);
        }
    

    这将创建一个简单的折线图,您可以根据需要更改类型、数据和选项。

  7. 运行Blazor应用程序,您应该能够看到您的Chart.js图表!

blazorChartJSRunPng

更多图表类型等信息,请参阅Chart.js官方文档。https://www.chartjs.com.cn/docs/

  1. 上面的相关代码我放在GitHub了,有需要的可以查看:https://github.com/azlis/BlazorChartJS

原文链接:https://www.cnblogs.com/codecopier/p/17298282.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Blazor中使用Chart.js生成图表 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 记一次 Windows10 内存压缩模块 崩溃分析

    一:背景 1. 讲故事 在给各位朋友免费分析 .NET程序 各种故障的同时,往往也会收到各种其他类型的dump,比如:Windows 崩溃,C++ 崩溃,Mono 崩溃,真的是啥都有,由于基础知识的相对缺乏,分析起来并不是那么的顺利,今天就聊一个 Windows 崩溃的内核dump 吧,这个 dump 是前几天有位朋友给到我的,让我帮忙看一下,有了dump之…

    C# 2023年5月2日
    00
  • C#实现QQ窗口抖动效果

    我将为您提供“C#实现QQ窗口抖动效果”的完整攻略。 1. 实现思路 QQ窗口抖动效果,可以通过定时器控制窗口的位置来实现。具体思路如下: 获取当前窗口的位置 每次定时器触发后,随机生成一个偏移量 根据偏移量计算出新的窗口位置 更新窗口位置 统计抖动的次数,当抖动次数达到预设值后停止抖动 2. 实现步骤 2.1 添加定时器控件 在窗口中添加一个Timer控件…

    C# 2023年6月6日
    00
  • asp.net 无刷新分页实例代码

    ASP.NET 是一款开放源码的服务器端 Web 应用程序框架,提供了丰富的功能和强大的工具,为开发者提供了高效的方式来构建、部署和维护 Web 应用程序。无刷新分页是其中一个常见需求,本文将通过两个示例来演示如何实现ASP.NET无刷新分页功能。 示例1:使用AJAX实现无刷新分页 步骤1:创建数据库表和数据 CREATE TABLE [dbo].[Use…

    C# 2023年5月31日
    00
  • C#多线程学习之(五)使用定时器进行多线程的自动管理

    下面是C#多线程学习之(五)使用定时器进行多线程的自动管理的完整攻略。 什么是定时器 定时器是一种常用的计时工具,可以用于多线程编程中,对多线程进行定时的自动管理。在C#中,可以使用System.Threading.Timer或System.Timers.Timer来实现定时器功能。 System.Threading.Timer System.Threadi…

    C# 2023年6月1日
    00
  • c#.NET 写txt文件小例子

    下面是详细的攻略: 1. 准备工作 在开始编写代码之前,需要准备好以下工具和环境: 电脑上已安装 .NET Framework。 某个文本编辑器或 IDE,比如 Visual Studio。 一些基本的 C# 编程知识。 2. 创建 C# 项目 创建一个新的 C# 项目: 打开 Visual Studio,选择 “新建项目”。 在弹出的 “新建项目” 窗口中…

    C# 2023年5月31日
    00
  • C#使用Aspose.Cells控件读取Excel

    以下是“C#使用Aspose.Cells控件读取Excel”的完整攻略,包括了两个示例: 1. 安装Aspose.Cells控件 要使用Aspose.Cells控件,需要先安装它。可以通过NuGet命令行工具安装或通过Visual Studio的NuGet包管理器来安装。具体操作步骤如下: 打开Visual Studio,打开项目,右键单击项目文件夹,选择“…

    C# 2023年5月31日
    00
  • C#实现让窗体获得焦点的方法示例

    当一个窗体生成后,有时我们需要让该窗体获得焦点,以便用户能够直接通过键盘或鼠标与该窗体进行交互。在C#中,可以通过调用窗体的Focus()方法来使窗体获得焦点。 以下是C#实现让窗体获得焦点的示例: 示例一 // 在窗体的构造函数中调用Focus方法 public Form1() { InitializeComponent(); this.Focus(); …

    C# 2023年5月31日
    00
  • C#将字节数组转换成数字的方法

    将字节数组转换成数字是在编程中经常遇到的需求。本文将详细讲解如何使用C#将字节数组转换成数字的方法。 使用BitConverter类进行转换 C#中内置的BitConverter类可以将字节数组转换成数字,使用方法如下: byte[] bytes = new byte[] { 0x01, 0x02, 0x03, 0x04 }; int result = Bi…

    C# 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部