javascript - 使用 javascript 刷新莫里斯图

标签 javascript jquery asp.net-mvc morris.js

我有这个莫里斯图,我想使用 JavaScript 函数刷新它。因此,我可以在包含将刷新莫里斯图表的 javascript 的页面上添加一个 href 链接。

<script type="text/javascript">
    $.get('@Url.Action("GetData")', function (result) {
        Morris.Line({
            element: 'samplechart',
            data: result,
            xkey: 'period',
            ykeys: ['a', 'b'],
            labels: ['YES', 'NO'],
            xLabelAngle: 60,
            parseTime: false,
            resize: true,
            lineColors: ['#32c5d2', '#c03e26']
        });
    });
</script>

该 javascrip 函数看起来如何以及如何调用它?

最佳答案

您可以创建一个在没有数据的情况下初始化莫里斯折线图的函数:initMorris。然后,要在图表中设置数据,请在页面加载或单击链接时调用获取数据的函数 getMorris 并使用构建的函数将数据设置到图表 setMorris -莫里斯线的 setData 函数。

请尝试下面的代码片段(例如,我创建了一个 getMorrisOffline 函数。要使用 ajax 获取数据,请在页面加载和链接事件中使用 getMorris单击):

var morrisLine;
initMorris();
//getMorris(); 
getMorrisOffline();

function initMorris() {
   morrisLine = Morris.Line({
    element: 'samplechart',
    xkey: 'period',
    ykeys: ['a', 'b'],
    labels: ['YES', 'NO'],
    xLabelAngle: 60,
    parseTime: false,
    resize: true,
    lineColors: ['#32c5d2', '#c03e26']
  });
}

function setMorris(data) {
  morrisLine.setData(data);
}

function getMorris() {
  $.get('@Url.Action("GetData")', function (result) {
    setMorris(result);      
  });
}

function getMorrisOffline() {
 var lineData = [
    { period: '2006', a: 100, b: 90 },
    { period: '2007', a: 75,  b: 65 },
    { period: '2008', a: 50,  b: 40 },
    { period: '2009', a: 75,  b: 65 },
    { period: '2010', a: 50,  b: 40 },
    { period: '2011', a: 75,  b: 65 },
    { period: '2012', a: 100, b: 90 }
  ];
  setMorris(lineData);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css" rel="stylesheet" />

<div id="samplechart"></div>
<a href="#" onclick="getMorrisOffline();">Refresh Morris</a>

关于javascript - 使用 javascript 刷新莫里斯图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42198625/

相关文章:

javascript - jQuery load() 导致 jQuery 插件错误

javascript - 在 React 中迭代表单元素数组

Javascript滚动到顶部并滚动到底部

javascript - 在 jsrender 模板中定义变量

jquery - 使用 jQuery 填充具有相同值的多个选择控件

jquery - 将 razor c# 字符串转换为 jquery 字符串

javascript - 在 AngularJs Controller 中使用 Asp.Net ViewBag 值

javascript - 如何在输入更改后立即使用 javascript 调用函数?

c# - 文件上传 - 返回 null

asp.net-mvc - EF、ASP MVC + 依赖注入(inject)。多个并发请求和数据库连接的问题