在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日

相关文章

  • C#设计模式之行为型模式详解

    C#设计模式之行为型模式详解 什么是行为型模式 行为型模式是面向对象设计中的一类设计模式,主要关注对象之间的交互和通信,以及对象的职责分配。它们描述了对象的行为,而不是它们的标识或状态。这些模式涉及到算法与对象间职责的分配,其中包括职责链、命令、解释器、迭代器、中介者、回调、观察者、状态、策略和模板方法等实现方法。 为什么需要行为型模式 在开发软件的过程中,…

    C# 2023年5月31日
    00
  • C#如何连接服务器共享文件夹

    连接服务器共享文件夹是C#程序开发中非常常见的需求,以下是连接服务器共享文件夹的完整攻略: 确定共享文件夹的路径 在连接服务器共享文件夹之前,需要确定共享文件夹的路径。共享文件夹通常是基于服务器的网络共享,因此需要访问服务器的网络位置,例如: \\servername\sharedfolder 其中,servername表示服务器的名称或IP地址,share…

    C# 2023年6月6日
    00
  • asp.net 数组中字符串替换的几种方式

    下面是关于“ASP.NET 数组中字符串替换的几种方式”的详细讲解: 1. 普通 for 循环迭代替换 首先,我们可以使用for循环迭代将数组中所有字符串的指定子串替换成其它字符串。这种方式比较原始,但在某些情境下可能还是非常有效。 下面是示例代码: string[] arr = {"apple", "banana",…

    C# 2023年5月31日
    00
  • C#使用命名管道Pipe进行进程通信实例详解

    下面我会给出一份完整的“C#使用命名管道Pipe进行进程通信实例详解”的攻略。 1. 什么是命名管道 命名管道(Named Pipe)是一种进程间通信(IPC)的方式,通过以名称命名的管道进行数据交换,起到了进程之间传输数据的作用。 命名管道通过文件系统创建,并且在创建的时候必须指定管道的名称。该名称由一些不包含任何非法字符的字符组成(例如,反斜杠 “\”)…

    C# 2023年6月1日
    00
  • Python SQLite3数据库操作类分享

    Python SQLite3数据库操作类分享 Python中操作SQLite数据库是一项重要的技能,在这里分享一种Python SQLite3数据库操作类的实现方法,方便大家在使用SQLite数据库时更加便捷。 SQLite3数据库介绍 SQLite是一个嵌入式的关系型数据库管理系统,特点是不需要独立的数据库服务器进程或操作系统,而是像其他应用程序库一样,以…

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

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

    C# 2023年6月1日
    00
  • Win7/Win8.1可用 NET Framework 4.6简体中文版官方下载

    下面是关于“Win7/Win8.1可用NETFramework4.6简体中文版官方下载”的完整攻略,包含两个示例。 1. NET Framework简介 .NET Framework是一个由微软开发的软件框架,用于构建Windows应用程序和Web应用程序。它提供了一组库和运行时环境,使开发人员能够使用多种编程语言(如C#、VB.NET和F#)编写应用程序。…

    C# 2023年5月15日
    00
  • Enterprise Library for .NET Framework 2.0缓存使用实例

    下面我将详细讲解“Enterprise Library for .NET Framework 2.0缓存使用实例”的完整攻略。 1. 引入Enterprise Library for .NET Framework 2.0库 要使用Enterprise Library for .NET Framework 2.0缓存,首先需要引入相关的库。可以使用NuGet包…

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