关于zedgraph在web中的两种工作方式

      项目需要用到zedgraph来做一些图表。zedgraph是一个开源免费项目,其官方网http://zedgraph.org/wiki/index.php?title=Main_Page

      zedgraph中有两个命名空间--------ZedGraph和ZedGraph.Web。

    ZedGraph 命名空间包含整个ZedGraph的类,加上一个ZedGraphControl控件(用于WinForm开发用的UI控件)。

    ZedGraph.Web命名空间包含用于web开发的组件,加上一个ZedGraphWeb控件(用于web开发的UI控件)。

    当只开发WinForm程序时,可以只添加引用ZedGraph命名空间对应的ZedGraph.dll。并可以在工具箱中,用 “选择项”把ZedGraphControl控件当成工具添加到工具箱中,这时就可以像其他(如button)一样,直接从工具箱中拖拉出来。

    当开发web程序时,就要添加引用ZedGraph.dll和ZedGraph.Web.dll。并也可在工具箱中,把ZedGraphWeb控件添加到工具箱。

    现在讲关于zedgraph 在web中的应用:

    ZedGraphWeb.RenderMode有两种模式:ImageTag和RawImage。

    ImageTag:这是用的比较多的。此时,把zedgraph作为一个正常控件使用。它的每一次请求,都会先生成图片,缓存在服务器上的一个指定文件夹下(这些图片,在客户端关闭浏览器,缓存时间到时,自动删除),接着自动产生一个<img srl="">标签,放在原来ZedGraphWeb在网页中的位置。img的src指向缓存在指定文件夹下的图片的地址,并加上time属性,以骗取浏览器重新加载图片。默认情况下,我们需要在应用程序的根目录下,指定一个ZedGraphImages的文件夹来存放缓存图片,大家也可修改ZedGraphWeb的RenderedImagePath属性值,重新定义一个文件夹。

     RawImage:以二进制流形式把产生的图片传到客户端浏览器,需专门的一个网页来放图片,然后在其它网页通过<img src="*.aspx">来引用生成的图片。那个专门放图片的网页不能有任何控件,形式如下:

<%@ Page Language="c#" Inherits="ZG1.graph" CodeFile="mygraph.aspx.cs" %>
<%@ Register TagPrefix="zgw" Namespace="ZedGraph.Web" Assembly="ZedGraph.Web" %>
<ZGW:ZEDGRAPHWEB id="ZedGraphWeb1" runat="server" width="500" Height="375" RenderMode="RawImage" />
<!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 runat="server">
    <title>无标题页</title>
</head>
<body>
</body>
</html>

posted @ 2008-12-10 23:16  心在天  阅读(1185)  评论(0编辑  收藏  举报