读书人

aspx页面有关问题和MSChart控件绘制雷

发布时间: 2012-07-31 12:33:46 作者: rapoo

aspx页面问题和MSChart控件绘制雷达图如何实现数据绑定问题探究。
最近刚开始学习ASP.NET,但是还不知道这个ASPX页面引入MSCHART控件绘制的雷达图,但是这个chart类, 怎样才能引入到它的后台控制代码cs文件中。我写的ASPX页面代码Radar.aspx如下:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Radar</title>
<link rel="stylesheet" type="text/css" href="../../ext-3.0/resources/css/ext-all.css" />
<script type="text/javascript" src="../../ext-3.0/adapter/ext/ext-base.js"> </script>
<script type="text/javascript" src="../../ext-3.0/ext-all.js"> </script>
<script type="text/javascript" src="../../ext-3.0/ext-lang-zh_CN.js"> </script>
<script type="text/javascript" src="../../JavaScripts/DataDisplay/Radar.js"></script>
<script type="text/javascript" src="../../My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript">
</head>
<form id="form1" runat="server">
<asp:Chart ID="Chart1" runat="server" Width="414px">
<Series>
<asp:Series ChartType="Radar" CustomProperties="CircularLabelsStyle=Horizontal"
Name="Series1">
</asp:Series>
<asp:Series ChartArea="ChartArea1" ChartType="Radar" Name="Series2">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
<AxisX>
<CustomLabels>
<asp:CustomLabel Text="检查量(X1000)" />
<asp:CustomLabel Text="检查时间" />
<asp:CustomLabel Text="检查费用(X10万)" />
<asp:CustomLabel Text="报告阳性率" />
<asp:CustomLabel Text="设备开机率" />
<asp:CustomLabel Text="随访率" />
</CustomLabels>
</AxisX>
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
</form>
</html>
它的后台控制代码DataDisplay.cs如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Data;
using System.Data.SqlClient;


namespace MvcTest.Controllers.DataDisplay
{
public class DataDisplayController : Controller
{
//
// GET: /DataDisplay/

public ActionResult Radar()
{
return View();
}
public struct record
{
public string Month;
public double CheckCount;
public double Masculine;
public double OnDevice;
public int CheckMinutes;
public double CheckPrice;
public double Reviews;

};
public record getList(string iDate)
{
SqlConnection conn = null;


SqlDataReader reader1 = null;
record p = new record();
try
{

String connString = @"Data Source=Localhost;Initial Catalog=RIS;Integrated Security=True";
conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd1 = conn.CreateCommand();

cmd1.CommandText = "SELECT * FROM [RIS].[dbo].[RadarStactics] where Month=@date";
SqlParameter par1 = new SqlParameter("@date ", SqlDbType.VarChar, 6);
par1.Value = iDate;
cmd1.Parameters.Add(par1);

cmd1.Prepare();
reader1 = cmd1.ExecuteReader();
while (reader1.Read())
{
p.CheckMinutes = (int)reader1["CheckMinutes"];
p.CheckCount = (double)reader1["CheckCount"];
p.CheckPrice = (double)reader1["CheckPrice"];
p.Masculine = (double)reader1["Masculine"];
p.OnDevice = (double)reader1["OnDevice"];

p.Reviews = (double)reader1["Reviews"];

}

}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
if (reader1 != null)
{
reader1.Close();
}
if (conn != null)
conn.Close();
}
return p;
}

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
////DateTime tes = dateTimePicker1.Value;
//string iDate = tes.ToString("yyyyMM");

//record list = getList(iDate);
//object[] YRowarr = { list.CheckCount, list.CheckMinutes, list.CheckPrice, list.Masculine, list.OnDevice, list.Reviews };
//string[] XRowarr = { "检查量(X1000)", "检查用时", "检查费用(X10万)", "报阳性率", "设备开机率", "随访率" };
//Chart1.Series["Series1"].Points.DataBindXY(XRowarr, YRowarr);
//Chart1.Series["Series1"].IsValueShownAsLabel = true;
}

private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
{
//DateTime tes = dateTimePicker2.Value;
//string iDate = tes.ToString("yyyyMM");
//record list = getList(iDate);
//object[] YRowarr = { list.CheckCount, list.CheckMinutes, list.CheckPrice, list.Masculine, list.OnDevice, list.Reviews };
//string[] XRowarr = { "检查量(X1000)", "检查时间", "检查费用(X10万)", "报阳性率", "设备开机率", "随访率" };
//Chart1.Series["Series2"].Points.DataBindXY(XRowarr, YRowarr);
//Chart1.Series["Series2"].IsValueShownAsLabel = true;
}


}
}
但是会提示当前上下文不存在名称:Chart1.还有这个<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
有关这行代码Inherits="System.Web.Mvc.ViewPage作用,ViewPage类有什么用?我应该多看那些方面的书才能快速入门ASP.NET.请大家多多指教,不胜感激!

------解决方案--------------------


你有没有在一个命名空间中定义一下新的接口
interface FileResult{
}
public class File{
public static void Main()
{
FileResult fileResult = new FileResult (); }
}
你试一下吧
[解决办法]
把mschart的System.Web.DataVisualization.dll放到你网站的bin目录
在web.config中controls节点增加
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

就没必要再页面注册了,后台直接引用命名空间,编写程序。
[解决办法]
把return new FileResult("Yo.png", "image/png", imageStream.ToArray());
改为return FileResult("Yo.png", "image/png", imageStream.ToArray());
试一下。

读书人网 >asp.net

热点推荐