ASP.NET中实现动态曲线图的视频教程
来源:互联网 发布:大数据平台架构模式 编辑:程序博客网 时间:2024/06/05 11:09
点击下面的入口可以在线观看视频
最近在项目中有个需求,把从数据库中读到的数据输出折线图并且是随着时间的推移动态的显示不同位置的数据这就要用到了动态折线图。刚开始项目中大部分的折线图都是用的MSchart 微软的这个控件是够强大,但是研究了好久不知道怎么实现动态的显示曲线(如果有知道的也请给我说下 一起学习),于是乎就想到了jquery+highCharts来实现,由于我使用的是异步处理,我的数据是从后台传到前台的客户端的,所以使用到了json 来传数据。下面就把这个小知识点分享给大家。
效果图
一、实现步骤
①准备需要的文档
在这里我用的是jquery 、 highcharts、和json 所以我先下载了jquery文件和highcharts文件 引用了json
文件我会很快传到网盘上供大家下载,大家可以到我这个博客中下载。(记得引用到项目中)
json需要添加引用System.Web.Extensions.dll中,是.Net3.x 中新增的类,如果在.Net2.0中则需要用第三方的组件
②单击显示曲线的时候向后台的发出处理请求并返回数据:
- <script type='text/javascript'>
- //声明数组 模拟后台获得数据
- //每次调用获得一条新数据放在末尾,第一条数据丢弃
- var dataArray = new Array();
- $(function() {
- $("#myjisuan").click(function() {
- $.post("rightbody_predict.aspx?id=1", function(data) {
- //alert(data);
- var obj = $.parseJSON(data); //把JSon格式的字符串转换为JavaScript对象
- var ss = document.getElementById("<%=tbInterval.ClientID%>").value;
- for (var i = 0; i < obj.length - 1; i++) {
- dataArray[i] = obj[i];
- }
- });
- });
- });
- </script>
<script type='text/javascript'> //声明数组 模拟后台获得数据 //每次调用获得一条新数据放在末尾,第一条数据丢弃 var dataArray = new Array(); $(function() { $("#myjisuan").click(function() { $.post("rightbody_predict.aspx?id=1", function(data) { //alert(data); var obj = $.parseJSON(data); //把JSon格式的字符串转换为JavaScript对象 var ss = document.getElementById("<%=tbInterval.ClientID%>").value; for (var i = 0; i < obj.length - 1; i++) { dataArray[i] = obj[i]; } }); }); });</script>
③组织数据,在这里就不在建立数据库了 直接从后台模拟一组数据,下面的代码仅供参考。
- public class Handler1 : IHttpHandler
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- int[] num = new int[10] {2,12,1,45,12,78,34,15,56,97 };
- int[] num1 = new int[10] { 2, 12, 1, 45, 12, 78, 34, 15, 56, 97 };
- int[] num2 = new int[10] {34, 67, 1, 76, 1, 2, 12, 19, 23, 21 };
- int[] num3 = new int[10] { 2, 12, 39, 40, 17, 98, 23, 29, 36, 1 };
- int[] num4 = new int[10] { 14, 45, 6, 78, 98, 89, 3, 67, 45, 15 };
- int[] num5 = new int[10] { 12, 2, 33, 3, 12, 67, 4, 43, 87, 5 };
- int[] num6 = new int[10] { 33, 3, 43, 89, 34, 54, 12, 2, 56, 4 };
- int[] num7 = new int[10] { 65, 45, 12, 33, 12, 34, 35, 1, 34, 33 };
- object[] nums2 = new object[8] {num,num1,num2,num3,num4,num5,num6,num7 };
- JavaScriptSerializer jss = new JavaScriptSerializer();
- string json = jss.Serialize(nums2);//
- context.Response.Write(json);
- }
public class Handler1 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; int[] num = new int[10] {2,12,1,45,12,78,34,15,56,97 }; int[] num1 = new int[10] { 2, 12, 1, 45, 12, 78, 34, 15, 56, 97 }; int[] num2 = new int[10] {34, 67, 1, 76, 1, 2, 12, 19, 23, 21 }; int[] num3 = new int[10] { 2, 12, 39, 40, 17, 98, 23, 29, 36, 1 }; int[] num4 = new int[10] { 14, 45, 6, 78, 98, 89, 3, 67, 45, 15 }; int[] num5 = new int[10] { 12, 2, 33, 3, 12, 67, 4, 43, 87, 5 }; int[] num6 = new int[10] { 33, 3, 43, 89, 34, 54, 12, 2, 56, 4 }; int[] num7 = new int[10] { 65, 45, 12, 33, 12, 34, 35, 1, 34, 33 }; object[] nums2 = new object[8] {num,num1,num2,num3,num4,num5,num6,num7 }; JavaScriptSerializer jss = new JavaScriptSerializer(); string json = jss.Serialize(nums2);// context.Response.Write(json); }
④得到返回的数据渲染到客户端
- $(function () {
- //声明报表对象
- var chart = new Highcharts.Chart({
- chart: {
- //将报表对象渲染到层上
- renderTo: 'container'
- },
- title: {
- text: '表的标题', //设置一级标题
- x: -20 //center
- },
- xAxis: {
- title: {
- text: 'x轴', //设置一级标题
- x: -20 //center
- }
- },
- yAxis: {
- title: {
- text: 'y轴', //设置一级标题
- y: -20 //center
- }
- },
- //设定报表对象的初始数据
- series: [{
- name: '折现代表的意思',
- data: [0.0, 0.0, 0.0, 0.0, 0.0]
- }]
- });
- var i = 0;
- function getForm() {
- //模拟后台得到的数据,进行赋值
- chart.series[0].setData(dataArray[i++]);
- }
- //每隔3秒自动调用方法,实现图表的实时更新
- window.setInterval(getForm, 1000);
- //alert(parseInt(ss) * 1000);
- });
$(function () { //声明报表对象 var chart = new Highcharts.Chart({ chart: { //将报表对象渲染到层上 renderTo: 'container' }, title: { text: '表的标题', //设置一级标题 x: -20 //center }, xAxis: { title: { text: 'x轴', //设置一级标题 x: -20 //center } }, yAxis: { title: { text: 'y轴', //设置一级标题 y: -20 //center } }, //设定报表对象的初始数据 series: [{ name: '折现代表的意思', data: [0.0, 0.0, 0.0, 0.0, 0.0] }] }); var i = 0; function getForm() { //模拟后台得到的数据,进行赋值 chart.series[0].setData(dataArray[i++]); } //每隔3秒自动调用方法,实现图表的实时更新 // window.setInterval(getForm, 1000); //alert(parseInt(ss) * 1000); });
最后在body里面设置一个id为的div
- ASP.NET中实现动态曲线图的视频教程
- ASP.NET中实现动态曲线图的视频教程
- asp.net中动态链接的实现
- asp.net+VML+XMLHTTP实现无刷新动态曲线图(附源码)
- asp.net的生成曲线图的过程
- ASP.NET图形化的曲线图类
- ASP.NET图形化的曲线图类
- ASP.NET图形化的曲线图类
- asp.net生成曲线图的过程
- ASP.NET图形化的曲线图类
- 实例:asp.net生成曲线图的过程
- 实例:asp.net生成曲线图的过程
- asp.net制作简单的曲线图
- asp.net 绘制曲线图
- asp.net动态网页制作视频教程
- ASP.NET中实现模版的动态加载
- ASP.NET中实现模版的动态加载
- ASP.NET中不定级动态菜单的实现(附图)
- js取得汉字首字母,并转化成大写。兼容火狐。
- 用实例调用虚方法与抽象方法有什么不同
- VMware Workstation 桥接配置
- 一个非常好用的可拖动的jquery弹出层
- This attribute must be localized错误
- ASP.NET中实现动态曲线图的视频教程
- 新一代视频编码标准——H.265/HEVC简介
- 通达oa 2011 命令提示符登录mysql数据库 mysql -u root -P(张迅雷 原创)
- linux模块编程(一)——加载你的模块
- IOS Xcode模拟器查看日志
- Linq to SQL 语法及使用
- oracle结构 段>区段>数据块
- 指针
- Google Protocol Buffer 的使用和原理