Mudblazor .Net6 上的 Apex 图表

问题描述 投票:0回答:1

这是 ApexChart Razor 页面,未显示任何图表,显示空白页面。我想在 MudBlazor .Net6 上实现 ApexChart

@page "/apexChart"
@using MudBlazor
@using MudBlazor.Charts

<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
<div id="chart"></div>
<script>
    var options = {
        chart: {
            type: 'line'
        },
        series: [{
            name: 'sales',
            data: [30, 40, 35, 50, 49, 60, 70, 91, 125]
        }],
        xaxis: {
            categories: [1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999]
        }
    }

    var chart = new ApexCharts(document.querySelector("#chart"), options);

    chart.render();
</script>
@code {
   
}

我希望在 Mudblazor 中显示顶点图表,因为它以 html 代码显示。下面的代码是顶点图的html代码

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
    <title>Hello, world!</title>
  </head>
  <body>
    <h1>Hello, world!</h1>
    <div id="chart"></div>
<script>
var options = {
  chart: {
    type: 'line'
  },
  series: [{
    name: 'sales',
    data: [30,40,35,50,49,60,70,91,125]
  }],
  xaxis: {
    categories: [1991,1992,1993,1994,1995,1996,1997, 1998,1999]
  }
}

var chart = new ApexCharts(document.querySelector("#chart"), options);

chart.render();
</script>
  </body>
</html>
javascript html .net-6.0 apexcharts mudblazor
1个回答
0
投票

您不能直接在 Razor 组件中使用 HTML 脚本标签。 确保您的

_Host.cshtml
文件或
index.html
文件中包含必要的脚本标记(如果您使用的是 Blazor WebAssembly 项目)。

@page "/apexChart"
@using MudBlazor
@using MudBlazor.Charts

<MudContainer>
    <div id="chart"></div>
</MudContainer>

@code {
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            await JSRuntime.InvokeVoidAsync("renderChart");
        }
    }
}

在项目的 wwwroot 目录中创建一个 JavaScript 文件并将其命名为

chartInterop.js

window.renderChart = () => {
    var options = {
        chart: {
            type: 'line'
        },
        series: [{
            name: 'sales',
            data: [30, 40, 35, 50, 49, 60, 70, 91, 125]
        }],
        xaxis: {
            categories: [1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999]
        }
    };

    var chart = new ApexCharts(document.querySelector("#chart"), options);
    chart.render();
};

您必须已将 JavaScript 文件包含在您的

_Host.cshtml
index.html
文件中

<script src="chartInterop.js"></script>
© www.soinside.com 2019 - 2024. All rights reserved.