如何在 ASP .net MVC 4 应用程序的 HTML5 中创建带有可点击选项的水平条形图? [关闭]

Posted

技术标签:

【中文标题】如何在 ASP .net MVC 4 应用程序的 HTML5 中创建带有可点击选项的水平条形图? [关闭]【英文标题】:How to create Horizontal Bar charts with clickable option in HTML5 in ASP .net MVC4 application? [closed] 【发布时间】:2013-06-17 08:10:44 【问题描述】:

我需要一个 html5 中的水平条形图。功能应该如下:

条形图应使用满足 mvc4 概念的 HTML5 开发。如果我单击图表栏,则该栏应通过将其显示为图表在另一个页面中打开。它应该像组内的子组。所有条形图数据都应该从数据库中动态获取。建议我一些好的想法来实现这个概念。提前致谢。

【问题讨论】:

@Pandiyan,您可能需要付出更多的努力,并且可能要对社区的其他人更加尊重。这个问题听起来像我们其他人是你的员工,这是一个要求。 :) 使用“please”和“could you pleaseSuggest”会让这个问题听起来不那么苛刻。 【参考方案1】:

你说:“我从不介意得到反对票。” ......我会给你贴上“不喜欢和别人玩”的标签:)

无论如何,有很多出色的代码可以制作您需要的图表,但您的关键是如何使用您的 MVC 控制器将这些代码注入您的视图。这是一篇关于如何做到这一点的好文章:http://www.dotnetcurry.com/ShowArticle.aspx?ID=822。

您不想使用图表插件?

好的,下面是 html 画布代码,它将绘制一个条形图并检测用户何时单击图表上的条形:http://jsfiddle.net/m1erickson/6vutD/

如果您想要的不仅仅是基本条形图,这里有一个开源图表代码,您可以根据需要拆开并使用:http://www.chartjs.org/

这是上面小提琴的代码:

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

<style>
    body background-color: ivory; 
    canvasborder:1px solid red;
</style>

<script>
$(function()

    var canvas=document.getElementById("canvas");
    var ctx=canvas.getContext("2d");

    var canvasOffset=$("#canvas").offset();
    var offsetX=canvasOffset.left;
    var offsetY=canvasOffset.top;

    var barWidth=30;
    var barSpacing=15;
    var leftMargin=20;
    var bars=[]

    bars.push(height:150, color:"blue", x:null,y:null,right:null,bottom:null);
    bars.push(height:75, color:"green", x:null,y:null,right:null,bottom:null);
    bars.push(height:125, color:"gold", x:null,y:null,right:null,bottom:null);


    for(var i=0;i<bars.length;i++)
        bar=bars[i];
        bar.x=leftMargin+(barWidth+barSpacing)*i;
        bar.y=canvas.height-bar.height;
        bar.width=barWidth;
        bar.right=bar.x+barWidth;
        bar.bottom=canvas.height;
    

    drawBarchart();

    function drawBarchart()

        ctx.clearRect(0,0,canvas.width,canvas.height);
        ctx.rect(0,0,canvas.width,canvas.height);
        ctx.fillStyle="skyblue";
        ctx.fill();

        for(var i=0;i<bars.length;i++)
            bar=bars[i];
            ctx.beginPath();
            ctx.rect(bar.x,bar.y,bar.width,bar.height);
            ctx.fillStyle=bar.color;
            ctx.fill();
            ctx.stroke()
        
    


    function handleMouseDown(e)
      mouseX=parseInt(e.clientX-offsetX);
      mouseY=parseInt(e.clientY-offsetY);

      // Put your mousedown stuff here
      for(var i=0;i<bars.length;i++)
          var bar=bars[i];
          if(mouseX>=bar.x 
                && mouseX<=bar.right
                && mouseY>=bar.y
                && mouseY<=bar.bottom)
              alert("Clicked on ["+bar.color.toUpperCase()+"] so open another chart!");
          
      
    

    $("#canvas").mousedown(function(e)handleMouseDown(e););


); // end $(function());
</script>

</head>

<body>
    <canvas id="canvas" width=300 height=300></canvas>
</body>
</html>

【讨论】:

【参考方案2】:

这看起来很有用。无需插件。

http://g.raphaeljs.com/

还有很多其他的库可以用来创建 html 图表。只需使用 Google 并寻找符合您要求的。

【讨论】:

以上是关于如何在 ASP .net MVC 4 应用程序的 HTML5 中创建带有可点击选项的水平条形图? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我如何在 ASP.Net Core 2.1 mvc 应用程序中包含 System.Identitymodel 4.0

大型查询如何在 C#/ASP.NET MVC 4 部分中返回结果

ASP.NET MVC 4 - 上传图片到数据库

ASP.NET MVC 4 的 Windows 身份验证 - 它是如何工作的,如何测试它

如何在 ASP .net MVC 4 应用程序的 HTML5 中创建带有可点击选项的水平条形图? [关闭]

如何使用 .Net 4.0 中包含的 HttpClient 类将文件上传到在 IIS Express 中运行的 Asp.Net MVC 4.0 操作