分享
 
 
 

ASP.NET画图全攻略(下)

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

我们在前面已经完成了饼图和条形图的自定义类,下面我们将要应用这些类了。

使用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)

{

file://从数据库中取得数据,用于画图

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");

file://设定产生图的类型(pie or bar)

string type = "";

if(null==Request["type"])

{

type = "PIE";

}

else

{

type = Request["type"].ToString().ToUpper();

}

file://设置图大小

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"]);

}

file://设置图表标题

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的输出流中,这里是直接将图形的内容发送到浏览器,而没有将其保存到磁盘中。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有