你说:“我从不介意得到反对票。” ……我会给你贴上“不喜欢和别人玩”的标签:)
无论如何,有很多出色的代码可以制作您需要的图表,但您的关键是如何使用您的 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; }
canvas{border: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>