ASP.NET画图全攻略(下)
使用vs.net新建一个名为Insight_cs的Web应用程序,并且添加到刚才的Insight工程中。删除默认的webform1.aspx文件,新建一个名为SalesChart.aspx文件。打开此文件,在代码模式下,将第一行替换为:
<%@ Page ContentType="image/gif" Language="c#" AutoEventWireup="false" Codebehind="SalesChart.aspx.cs" Inherits="Insight_cs.SalesChart" %>
打开文件SalesChart.aspx.cs,其中代码如下所示:
using System;
using System.Data;
using System.Web;
using System.IO;
using System.Data.SqlClient;
using Insight_cs.WebCharts;//这是自定义的名字空间
namespace Insight_cs
{
public class SalesChart : System.Web.UI.Page
{
public SalesChart()
{
Page.Init += new System.EventHandler(Page_Init);
}
private void Page_Load(object sender, System.EventArgs e)
{
//从数据库中取得数据,用于画图
string sql = "SELECT " +"Year(sa.ord_date) As [Year], " +"SUM(sa.qty) As [Qty] " +"FROM " +"sales sa " +"inner join stores st on(sa.stor_id = st.stor_id) " +"GROUP BY " +"Year(sa.ord_date) " + "ORDER BY " + "[Year]";
string connectString = "Password=ben; User ID=sa; DataBase=pubs;Data Source=localhost";
SqlDataAdapter da = new SqlDataAdapter(sql,connectString);
DataSet ds = new DataSet();
int rows = da.Fill(ds,"chartData");
//设定产生图的类型(pie or bar)
string type = "";
if(null==Request["type"])
{
type = "PIE";
}
else
{
type = Request["type"].ToString().ToUpper();
}
//设置图大小
int width = 0;
if(null==Request["width"])
{
width = 400;
}
else
{
width = Convert.ToInt32(Request["width"]);
}
int height = 0;
if(null==Request["height"])
{
height = 400;
}
else
{
height = Convert.ToInt32(Request["height"]);
}
//设置图表标题
string title = "";
if(null!=Request["title"])
{
title = Request["title"].ToString();
}
string subTitle = "";
if(null!=Request["subtitle"])
{
subTitle = Request["subtitle"].ToString();
}
if(0<rows)
{
switch(type)
{
case "PIE":
PieChart pc = new PieChart();
pc.Render(title,subTitle,width,height,ds,Response.OutputStream);
break;
case "BAR":
BarChart bc = new BarChart();
bc.Render(title,subTitle,width,height,ds,Response.OutputStream);
break;
default:
break;
}
}
}
private void Page_Init(object sender, EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
}
#region Web Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
以上的代码并没有什么难的,这里就不做分析了。
在vs.net中,打开Insight_cs solution,右击”引用“,将出现”添加引用“,将组件文件Insight_cs.WebCharts.dll加入,使其成为项目中的namespace。
下面我们就可以浏览结果了。
首先建立一个demochart.aspx文件,在其代码中,加入一下内容:
<IMG alt="Sales Data - Pie"
src="SalesChart.aspx?type=pie&width=300&height=30
0&title=Sales+by+Year&subtitle=Books">
<IMG alt="Sales Data - Bar"
src="SalesChart.aspx?type=bar&width=300&height=30
0&title=Sales+by+Year&subtitle=Books">
type表示显示图形的类型,是饼图pie,还是条形图bar。
width,height表示图形的大小。
title表示大标题文字。
subtitle表示小标题文字。
其结果显示如图1(图片在文章《ASP.NET画图全攻略(上)》)。
由此,我们完成了利用asp.net技术画图的过程。
综合起来,可以总结出以下几点:1.利用ASP.NET技术,可以在不使用第三方组件的情况下,画出理想的图形。2.画图核心是构造一个BitMap(位图)对象,它为要创建的图形提供了内存空间。然后,利用有关namespace提供的类和方法画出图形。最后就可以调用Bitmap对象的“Save”方法,将其发送到任何.NET的输出流中,这里是直接将图形的内容发送到浏览器,而没有将其保存到磁盘中。
转载于:https://www.cnblogs.com/niit007/archive/2006/08/13/475655.html
ASP.NET画图全攻略(下)相关推荐
- ASP.NET画图全攻略(上)
using System; using System.IO;//用于文件存取 using System.Data;//用于数据访问 using System.Drawing;//提供画GD ...
- Longhorn安装使用全攻略(下)(转)
Longhorn安装使用全攻略(下)(转)[@more@] 微软Windows图形和游戏负责人Lester,在接受Gamespot访问的时候表示,微软下一代操作系统Longhorn将原生支持XNA开发 ...
- ALEXA站长全攻略(转)
写此文之前本拟在"ALEXA"前加一个"网站流量世界排名",可转而一想ALEXA主营业务及目前的功能也不一个专做网站流量排名的网站,更确切的说它是一个提供搜索的 ...
- Asp.net C#制作PDF文件全攻略
StreamWriter pPDF=new StreamWriter(filePath); ArrayList xRefs=new ArrayList(); float yPos =0f; long ...
- 黑莓 8830 全攻略 写了1天(下)
黑莓 8830 全攻略 写了1天(下) 2011年03月27日 一.关于软件 软件应用,视个人喜好而定,各个黑莓论坛有足够的资源支持,这里只给出基本的软件及相关应用指导. 软件安装方法: 1.通过桌面 ...
- Linux下的文件共享全攻略系列之一:Samba服务器简介与快速配置指南
目前,研究者们开发了许多网络服务和协议来完成资源共享的功能.对于网络用户和管理员来说,他们希望得到免费和高效的服务,而这种需求的最好选择莫过于当前开源的操作系统Linux下的产品了.本专题从多个应用服 ...
- synergy在Windows和Linux下使用全攻略(多台PC共享一套键盘鼠标)
synergy在Windows和Linux下使用全攻略(多台PC共享一套键盘鼠标) 标签: windowslinuxkeyboard服务器测试 2011-11-26 14:51 6882人阅读 评论( ...
- linux服务配置大全 fedora 8 ftp 百度文库,Linux下VSFTP配置全攻略
Linux下VSFTP配置全攻略 [日期:2007-10-05] 来源:Linux公社 作者:Linuxidc [字体:大 中 小] 4]如果要以系统中存在的普通用户登入FTP,也没有什么可以设置的, ...
- Linux下架设邮件服务器全攻略(二)
Linux下架设邮件服务器全攻略(二) (三)sendmail.cf难以配置,Sendmail的开发人员为sendmail的管理者提供了更加容易理解和配置的sendmail.mc文件. 一般情况下,要 ...
最新文章
- 手机端设置https访问代理(windows)
- SAP Leonardo图片处理相关的机器学习服务在SAP智能服务场景中的应用
- 用Vue.js开发一个电影App的前端界面
- Python 中如何解决 asyncio 文件描述符最大数量限制问题
- GRPC: 如何优雅关闭进程(graceful shutdown)
- CentOS下Apache服务器的安装与配置
- 在CentOS 5.5安装 Apache2 和 PHP5 及 MySQL
- 虎头少保,天下第一手孙禄堂【转】
- css城市列表,js 获取全国城市列表方法
- vue-oss阿里云上传图片
- mysql时区time_zone和sytem_time_zone
- 压力换算公斤单位换算_压力单位换算表
- Web服务http日志收集
- android xposed开发视频,【Xposed】抖音短视频检测 Xposed 分析
- 2.6亿孤独灵魂能否听出一座喜马拉雅
- 汉诺塔详解(包看包会)
- Three.js显示物体的运动轨迹
- supplier java8_Java 8之 Supplier示例
- 下载神器 Proxyee Down windows10 安装教程
- python批量重命名图片、文件脚本
热门文章
- oracle4030,oracle ora-4030错误求解
- navicat for mysql 数据传输_如何利用Navicat for MySQL数据库进行数据传输
- oracle——监听(二、sqlplus连接数据库)
- go get如何删除_Go语言HTTP请求(req库)
- linux内核rop姿势详解,Linux内核ROP姿势详解(二)
- oracle 插入n字母,Nhibernate在oracle批量插入失败,求解?
- Zookeeper知识
- Spark解决的问题与体系结构
- python计算组合数_python排列组合算法
- 剑指offer面试题53 - I. 在排序数组中查找数字 I(二分查找)