Current look of my page
我试着把两个输入的值传递给clickupdate()js函数,为显示的图表设置一个新的范围,数字代表将要显示的列表的索引,所以基本上图表应该从哪个索引呈现到哪个索引。
@page
@model statmath_web.Pages.Visualization.VisualizationMainModel
@{
ViewData["Title"] = "CSV Data Visualization";
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
<html>
<head>
</head>
<body>
<center>
<td >
<input class="text-center param-input" id="Minimum_Parameter_Value"
type="number" min="0" max="@Model.length" step="1"
placeholder="Min" value="0" />
</td>
<td>
<input class="text-center param-input" id="Maximum_Parameter_Value"
type="number" min="0" max="@Model.length" step="1"
placeholder="Max" value="@Model.length"/>
</td>
<br />
<button onclick="clickupdate()">Update Data</button>
<canvas id="myChart" width="1200" height="700"></canvas>
<script>
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, {
type: "line",
data: {
labels: @Html.Raw(Json.Serialize(Model.TimeList.GetRange(0, 50))),
datasets: [
{
label: "VSE Value",
backgroundColor: "rgb(255, 255, 255)",
borderColor: "rgb(54, 162, 235)",
fill: false,
data: @Html.Raw(Json.Serialize(Model.ValueList.GetRange(0, 50))),
}
]
},
options: {
animation: false,
parsing: false,
responsive: true,
},
});
function addData(chart, label, data) {
chart.data.labels = label
chart.data.datasets.forEach((dataset) => {
dataset.data = data;
});
chart.update();
}
function clickupdate(){
labelsNew = @Html.Raw(Json.Serialize(Model.TimeList.GetRange(Number(Minimum_Parameter_Value) , Number(Maximum_Parameter_Value) - Number(Minimum_Parameter_Value))))
dataNew = @Html.Raw(Json.Serialize(Model.ValueList.GetRange(Number(Minimum_Parameter_Value) , Number(Maximum_Parameter_Value) - Number(Minimum_Parameter_Value))))
addData(myChart, labelsNew, dataNew);
}
</script>
</center>
</body>
</html>
到目前为止,我尝试在js部分设置常量和变量,但这些抛出“'name'在当前上下文中不存在”(CS0103)。
我意识到我可以把这些作为jQuery字符串传递到我的URL中,但是对于这个任务来说,应该有一个更干净的方法。
1条答案
按热度按时间jei2mxaa1#
需要在Javascript部分创建新的变量列表,然后在其上使用.slice()。
参见更新代码: