如何解决JS图表不显示与带有计时器的asp.net更新面板
我使用 Js 图表创建了 asp.net
网络表单。从 MS sql 数据库给出的 Js 图表数据。我想在 05 秒内更新图表。在没有更新面板的页面加载中,图表显示正确。但是添加到更新面板后,图表不显示。我试图用各种方式解决这个问题。但我仍然无法找到解决方案。希望大家支持。
我的 aspx 代码为:
<script src="Content/js/ChartJS.js"></script>
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<div class="row" style="text-align: center; padding-left: 5%;">
<div class="col">
<div style="width: 500px; height: 300px;">
<asp:Literal ID="chartTemp" runat="server"></asp:Literal><br /><br />
<p>Temperature</p>
</div>
</div>
<asp:Timer ID="Timer3" runat="server" Interval="5000" OnTick="Timer1_Tick"> </asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
我的 aspx.cs 代码为:
protected void Timer1_Tick(object sender,EventArgs e)
{
objDeviceClass.DeviceNme = qryStrng;
string chartType = "Temp";
DataTable dtTempChart = objDeviceClass.GetChartData(chartType);
if (dtTempChart != null)
{
String chart = "";
chart = "<canvas id=\"line-chart\" width=\"60\" height=\"20\"></canvas>";
chart += "<script>";
chart += "new Chart(document.getElementById(\"line-chart\"),{ type: 'line',data: {labels: [";
string valueX = "";
for (int i = 0; i < dtTempChart.Rows.Count; i++)
valueX += dtTempChart.Rows[i]["time"].ToString() + ",";
chart += valueX;
chart += "],datasets: [{ data: [";
// get data from database and add to chart
String value = "";
for (int i = 0; i < dtTempChart.Rows.Count; i++)
value += dtTempChart.Rows[i]["temperature"].ToString() + ",";
value = value.Substring(0,value.Length - 1);
chart += value.ToString();
chart += "],label: \"Temperature (°C)\",borderColor: \"#3e95cd\",fill: true}"; // Chart color
chart += "]},options: { title: { display: true,text: 'Temperature (°C)'} }"; // Chart title
chart += "});";
chart += "</script>";
chartTemp.Text = chart;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。