【发布时间】:2021-12-20 02:49:54
【问题描述】:
我想用一个过滤器控制 3 个图表,页面将包含一个浮动到右侧的过滤器和三个左侧的图表, 这些图表位于一个名为 dash.js 的 javascript 文件中,这些图表是使用 chart.js 制作的。 带有硬编码数据的 javascript 文件中的图表代码
var ctx = document.getElementById("target").getContext('2d');
var myChart = new Chart(ctx, {
type: "doughnut",
data: {
labels: KPINAME,
datasets: [
{
data: kpis,
label: "Target",
backgroundColor: barColors,
fill: false
}
]
},
options: {
maintainAspectRatio: false,
}
});
//external
var ctx = document.getElementById("external");
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: programs,
datasets: [
{
data: kpi2,
label: "KPI2",
backgroundColor: "#3e95cd",
fill: false
}
]
}
});
//internal
var ctx = document.getElementById("internal");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: years,
datasets: [
{
data: kpi2forcsc,
label: "KPI2 OF CSC",
borderColor: "#3e95cd",
fill: false
},
{
data: kpi2forit,
label: "KPI2 OF IT",
borderColor: "#b91d47",
fill: false
}
]
}
索引页面上的过滤器代码
<div style="float:right">
<div class=" navbar-light bg-light text-center" id="sticky-sidebar">
<div class="sticky-top">
<!-- Fillter code-->
<!-- just a sample .. later connect with database using C# -->
<div class="college">
<label class="small">:choose college</label>
<select id="College" name="College" class="form-control form-control-sm">
<option value="" disabled selected>college</option>
@foreach (var x in ViewBag.ListC)
{
<option value="@x">@x</option>
}
</select>
</div>
<!-- connect with database using C# -->
<div class="department">
<label class="small">:choose department</label>
<select id="department" name="department" class="form-control form-control-sm">
<option value="" disabled selected>department</option>
@foreach (var x in ViewBag.ListD)
{
<option value="@x">@x</option>
}
</select>
</div>
<!-- connect with database using C# -->
<div class="program">
<label class="small">:choose a program</label>
<select id="department" name="department" class="form-control form-control-sm">
<option value="" disabled selected>program</option>
@foreach (var x in ViewBag.ListP)
{
<option value="@x">@x</option>
}
</select>
</div>
家庭控制器中的代码
public IActionResult Index()
{
ViewBag.ListC = _db.Colleges.Select(u => u.CollageName);
ViewBag.ListD = _db.Departments.Select(u => u.DepartmentName);
ViewBag.ListP = _db.UniPrograms.Select(u => u.ProgramName);
return View();
}
我想知道如何将过滤器与图表链接,因此过滤器的任何更改都会影响图表
【问题讨论】:
标签: javascript asp.net-core chart.js filtering asp.net-core-mvc-2.0