从 Blazor 应用程序将 Google Charts 实施到 Razor 页面

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

我想将标准 Google Chart (https://developers.google.com/chart/interactive/docs/quick_start) 实施到标准 Blazor 应用程序的 Razor 页面中(例如到页面 FetchData.razor 中)。

我必须在哪个文件中实现脚本部分?

如何从 Razor 页面调用脚本?

如何向脚本发送数据?

blazor google-visualization
1个回答
0
投票

_layout.cshtml

<body>
  ...
  <script src="pages/Index.razor.js"></script>
  ...
</body>

Pages/Index.razor.js

window.onload = function () {
  google.charts.load('current', { 'packages': ['line'] });
}

function drawChart(json) {
  var dataTable = new google.visualization.DataTable(json);

  var options = {
    width: 600,
    height: 400,
    ...
    }
  };

  var chart = new google.charts.Line(document.getElementById('chart_div'));
  chart.draw(dataTable, google.charts.Line.convertOptions(options));
}

Pages/Index.razor

@inject IJSRuntime JSRuntime
...
<div id="chart_div"></div>
...

Pages/Index.razor.cs

Google.DataTable.Net.Wrapper
用于创建符合 Google Charts 要求的数据表。

using Microsoft.JSInterop;
...
protected override async Task OnAfterRenderAsync(bool firstRender)
{
  string dataTable = GetDataTable().GetJson();
  await JSRuntime.InvokeVoidAsync("drawChart", dataTable);
}

在这种情况下

OnAfterRenderAsync
用于调用drawChart函数,因为图表数据在运行时发生变化。

© www.soinside.com 2019 - 2024. All rights reserved.