linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > asp.net >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·NetBPM工作流的一个示例:请假
·Office Web Components(OWC)绘
·asp.net正则表达式语法
·asp.net 2.0 ajax中使用PopupC
·Ado.Net读取Excel常见问题总结
·数据源为空时如何让GridView显
·如何让UpdatePanel支持文件上传
·C#.Net的常见面试试题和参考答
·asp.net ajax客户端编程+jquer
·Brettle.Web.NeatUpload.dll支
·ASP.NET使用Cookie
·ASP.NET DEMO 15: 同时支持行单
·如何使IE的后退按钮无效
·如何在ASP.NET中用OWC绘制图表
·asp.net:正确判断当前用户角色
最新文章
·Ajax Control Toolkit Animati
·讨论一下类似BlogEngine内一次
·使用CSS+SiteMap+UserControl+
·Asp.net中多彩下拉框的实现
·浅谈ASP.NET的Postback
·分清ASP.NET AJAX中的Extender
·Tip:在使用AjaxControlTookit
·有关注册DataItem的一些可能被
·IIRF(Ionic's Isapi Rewrite
·asp.net 客户端回调功能的实现
·关于控件部分的看法--读Progra
·为什么在vista上做开发
·如何封装JS和CSS文件为服务器端
·岂今我看过的最强的排序算法
·设计模式学习笔记之单件模式
Google
 
如何在ASP.NET中用OWC绘制图表
[ 作者:  加入时间:2007-10-15 16:29:27  来自:Linux联盟收集整理 ]
 一、概述 jEjLinux联盟
   jEjLinux联盟
  在开发应用程序时,经常会遇到必须提供交互式图表的情况。例如,你可能在开发一个管理销售和产品数据的应用程序,数据保存在SQL Server数据库上,应用程序允许用户添加数据、更新现有数据,但除了这些功能之外,客户还要求应用程序能够用饼图、柱形图或XY散点图的形式直观地描述数据。 jEjLinux联盟
   jEjLinux联盟
  在Windows桌面应用程序中,这类要求从来不成为问题,可供选用的图形库和绘图组件实在太多了。但对于Web应用程序,问题就变得复杂多了。要在Web应用中绘制图表,可供选择的办法包括: jEjLinux联盟
   jEjLinux联盟
  ■ 客户端: jEjLinux联盟
   jEjLinux联盟
  利用各种ActiveX组件,Web浏览器内完全有可能达到“丰富”Windows客户程序那样的功能。缺点是客户端的设置复杂化,要求发布客户端软件,通常按照每客户端的方式计算许可证费用。另外,非MS Windows/IE的客户端一般难以运行。 jEjLinux联盟
   jEjLinux联盟
  ■ 服务器端: jEjLinux联盟
   jEjLinux联盟
  利用Web服务器上运行的服务器端代码,动态地生成图表,然后以GIF或JPG图形的形式发送给客户端。这种办法的优点是,客户端只需要一个标准的浏览器。与客户端技术相比的缺点是,图形的交互能力差(除非向服务器提交新的请求,否则就不能缩放、滚动)。许多地图网站(例如Mapquest.com)大量地运用了这一技术。注意,地图图形不是保存在Web服务器上,而是用户发出一个请求时动态从地图数据库生成。 jEjLinux联盟
   jEjLinux联盟
  本文主要讨论如何利用服务器端的图表绘制技术在ASP.NET Web页面中提供图形功能,具体地说,本文分析了如何利用MS SQL数据库中保存的数据生成一个散点图。 jEjLinux联盟
   jEjLinux联盟
  二、设置图表引擎 jEjLinux联盟
   jEjLinux联盟
  如果要在ASP.NET应用程序中绘制图表,必须要有一个合适的图表引擎。ASP.NET有一个内建的图形工具库,即System.Drawing名称空间的GDI+,可以用来创建简单的饼图、柱形图、折线图等,不过它属于低级的API,算不上绘制图表的引擎,特别是不适合绘制复杂的图表。 jEjLinux联盟
   jEjLinux联盟
  ASP.NET环境下还有许多商业化的图表绘制代码库,随便搜索一下Google,就可以找到: jEjLinux联盟
   jEjLinux联盟
  Mycos Charts .NET Web Forms Edition jEjLinux联盟
   jEjLinux联盟
  Dundas Chart for ASP.NET jEjLinux联盟
   jEjLinux联盟
  .netCHARTING jEjLinux联盟
   jEjLinux联盟
  Charting Controls at the ASP.NET Control Gallery jEjLinux联盟
   jEjLinux联盟
  不过,许多产品都相当昂贵,而且与世界上应用最广泛的图表绘制工具——Excel相比,不免给人以陌生的感觉。MS Excel是一个相当强大的图表引擎,支持的图表类型非常丰富,而且提供了完备的图表布局调整功能。 jEjLinux联盟
   jEjLinux联盟
  正因为如此,所以本文要讨论的主角是OWC,即Office Web Components,或者“Office Web组件”。按照微软的定义,OWC是一种“将类似Office的功能扩展到Web的微软技术”。它可以在客户端使用,例如我们将Excel工作表保存为Web页面时就要用到,利用它可以方便地将交互式电子表格和图表发布到Web页面。同时,OWC也是一个优秀的服务器端图表引擎,具有与MS Excel同样强大的图表绘制能力。 jEjLinux联盟
   jEjLinux联盟
  三、OWC的许可证问题 jEjLinux联盟
   jEjLinux联盟
  如果你曾经用过版本较早的OWC,可能已经遇到过微软的许可证问题。以前这个问题相当令人烦恼,微软不仅要求服务器上必须有Office许可证,而且每一台客户PC上也同样要有。 jEjLinux联盟
   jEjLinux联盟
  实际上,这相当于将OWC的用途局限到了Intranet之内,只有Intranet之内才可以保证客户PC上都安装了Office许可证。不过现在微软的态度有所放缓——服务器上仍旧要安装Office许可证,但只要图表是“非交互式”用途,例如本文的服务器端图表绘制,客户端就不必再装Office许可证。实际上,就连服务器端也不必安装完整的Office许可证,Excel 2002或FrontPage 2002的许可证就已足够,从而使OWC变成了价廉物美的服务器端图表引擎。 jEjLinux联盟
   jEjLinux联盟
  那么,在服务器上安装MS Office?不,没有必要。虽然从许可证条件看,OWC应该是Office的一部分,但从技术上说,OWC是一个独立的产品。Web服务器上只需安装OWC软件包,不必安装整个Office。 jEjLinux联盟
   jEjLinux联盟
  OWC首次出现于Office 2000,即OWC 9.0。在Office XP中,OWC的编程模式已作了修改,这使得OWC XP(也就是OWC 10)不能与OWC 9.0完全兼容。OWC 10要求在ASP.NET环境中运行,所以OWC 10软件包必须安装到ASP.NET服务器上。 jEjLinux联盟
   jEjLinux联盟
  接下来,很自然的一个问题是:哪里可以下载OWC 10软件包?令人惊奇的是,它可以从微软的网站免费下载,地址是http://office.microsoft.com/downloads/2002/owc10.aspx,但要注意的是,Web服务器上必须安装了某种Office 2002的许可证才能合法地使用OWC 10。 jEjLinux联盟
   jEjLinux联盟
  四、OWC的运行机制 jEjLinux联盟
   jEjLinux联盟
  OWC是一组COM(ActiveX)控件的集合,涵盖电子表格、图表、数据透视表等功能。它经常被当作客户端技术使用,这时COM控件就安装在客户端PC上。如果在服务器端使用,人们主要感兴趣的是它的图表绘制功能。 jEjLinux联盟
   jEjLinux联盟
  有了OWC,我们可以在ASP.NET Web服务器上动态创建一个图表,然后将图表以GIF图形的形式发送到客户端。客户端看到的仅仅是一个普通的图形文件,但在“背后”,图形文件实际上是由服务器上ASP.NET回应客户请求时动态生成的。因此,这种技术对客户端没有特殊的要求,只要能够显示GIF图形就可以了,即使Netscape和Opera也不存在任何问题。 jEjLinux联盟
   jEjLinux联盟
  既然如此,为什么在ASP.NET开发领域中,OWC这一优秀的微软技术尚未被广泛采用呢?微软根本不为OWC作市场宣传,再加上令人迷惑的许可证问题,当然令许多开发者望而却步。也许微软认为该产品还没有完全成熟,即将到来的Office 2003将会带来OWC 11,它的编程模式还会有所改变。另外,还有一种可能是微软担心OWC技术的广泛采用会影响Office的销售。 jEjLinux联盟
   jEjLinux联盟
  再者,关于OWC的编程实例很少。微软知识库有几个客户端的例子和“传统”ASP的服务器端例子,但找不到在ASP.NET环境中使用OWC 10的例子。OWC的新闻组,microsoft.public.office.developer.web.components,主要讨论的也是客户端的应用。如果你要在ASP.NET环境中使用OWC 10,主要还是靠自己摸索。正是因为这些原因,所以本文从相当广泛的角度探讨了该技术的实际应用。 jEjLinux联盟
   jEjLinux联盟
  五、在Web服务器上安装OWC 10 jEjLinux联盟
   jEjLinux联盟
  要想在ASP.NET Web服务器上用OWC绘制图表,首先应当安装必要的软件和修改一些配置。 jEjLinux联盟
   jEjLinux联盟
  第一,Web服务器上当然应该有ASP.NET运行环境。除了.NET Framework Redistributable,还要有GACUTIL程序(属于.NET框架SDK)来配置OWC控件,也就是说,还要安装.NET Framework SDK工具。如果把.NET Framework 1.1 Redistributable和SDK安装到了默认目录,PATH环境变量的内容应当包含:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin。 jEjLinux联盟
   jEjLinux联盟
  接下来再在Web服务器上安装OWC 10。OWC可以从微软免费下载,安装时只要采用所有默认选项即可。 jEjLinux联盟
   jEjLinux联盟
  由于OWC 10是一种COM技术,为了让.NET代码使用OWC 10组件,还必须安装Office XP的Primary Interop Assembly(PIA),PIA可以从微软网站下载(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/odc_oxppias.asp)。下载得到的OXPPIA.exe是一个压缩文件,现在把它解压缩到服务器上的一个目录,假设是C:\oxppia,然后启动一个命令窗口(注意,确保PATH环境变量已正确设置),转到c:\oxppia目录,运行REGISTER.bat。 jEjLinux联盟
   jEjLinux联盟
  这个命令把Office XP PIA导入到全局程序集缓冲区,修改注册表设置。注意观察REGISTER.bat命令的输出,确信GACUTIL命令确实在运行。如果PATH环境变量设置有误,PIA不可能正确导入。README文档说应当用VS.NET命令行环境,但Web服务器上可能没有安装VS.NET,这时就要手工修改PATH环境变量了(效果一样)。 jEjLinux联盟
   jEjLinux联盟
  最后,还要把下面这行代码加入Web服务器的machine.config文件的 <assemblies> 节,对于.NET Framework 1.1,machine.config文件可以在C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG目录下找到: jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  <add assembly="Microsoft.Office.Interop.Owc, Version=10.0.4504.0, jEjLinux联盟
   Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  六、OWC编程模式 jEjLinux联盟
   jEjLinux联盟
  为了在ASP.NET页面中显示一个OWC图表,我们将创建一个简单的ASP.NET页面,该页面的唯一用途就是显示图表。Web页面的名称是getchart.aspx。要在Web页面中显示出图表,可以用一个标准的 HTML <IMG> 标记,如下所示: jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  <img src="getchart.aspx" /> jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  getchart.aspx页面在服务器上动态生成OWC图表,然后把图表转换成GIF图形发送给客户端。因此,在客户端看来,getchart.aspx就相当于一个GIF图形。 jEjLinux联盟
   jEjLinux联盟
  下面我们分析一下getchart.aspx文件。如果使用ASP.NET的Codebehind机制,getchart.aspx实际上只要数条ASP.NET指令: jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  <%@ Page Language="vb" AutoEventWireup="false" jEjLinux联盟
   Codebehind="getchart.aspx.vb" Inherits="getchart"%> jEjLinux联盟
  <%@ OutputCache Duration="5" VaryByParam="none" %> jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  记住,getchart.aspx文件应当向客户端返回一个GIF文件(即,一个二进制数据流),因此,它不能包含任何HTML,它只是一个对后台文件getchart.aspx.vb的引用,getchart.aspx.vb的作用是生成GIF图形的二进制数据流。上面的第二行代码决定了缓冲区生存时间,这里是5秒。如果数据库里的信息频繁地更新,例如天气数据或股票价格,必须减小缓冲区生存时间,以便用户每次点击“刷新”按钮时都能够得到最新的数据。 jEjLinux联盟
   jEjLinux联盟
  下面我们再来看看getchart.aspx.vb文件,这是实际执行所有图表生成、图形转换操作的地方! jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  Imports System jEjLinux联盟
  Imports System.Data jEjLinux联盟
  Imports System.Data.SqlClient jEjLinux联盟
  Imports System.Web jEjLinux联盟
  Imports System.Web.UI jEjLinux联盟
  Imports System.Web.UI.WebControls jEjLinux联盟
  Imports Microsoft.Office.Interop jEjLinux联盟
  Public Class getchart jEjLinux联盟
  Inherits System.Web.UI.Page jEjLinux联盟
  Protected WithEvents ChartSpace1 As Owc.ChartSpace jEjLinux联盟
  Private Sub Page_Load(ByVal Sender As System.Object, _ jEjLinux联盟
   ByVal E As System.EventArgs) Handles MyBase.Load jEjLinux联盟
   Response.Buffer = TRUE jEjLinux联盟
   Response.ContentType = "image/gif" jEjLinux联盟
   'SQL Server连接字符串 jEjLinux联盟
   Dim ConnectionString As String = "连接字符串" jEjLinux联盟
   '计算数据点个数的SQL命令 jEjLinux联盟
   Dim CountText As String = "SELECT COUNT(*) From OWCDATA" jEjLinux联盟
   '获取数据点的SQL命令 jEjLinux联盟
   Dim CommandText As String = "SELECT X, Y From OWCDATA ORDER BY X" jEjLinux联盟
   '定义数据库连接对象 jEjLinux联盟
   Dim myConnection As New SqlConnection(ConnectionString) jEjLinux联盟
   '定义一个命令对象,用于计算数据点个数 jEjLinux联盟
   Dim myCount As New SqlCommand(CountText, myConnection) jEjLinux联盟
   '定义一个获取数据点的命令对象 jEjLinux联盟
   Dim myCommand As New SqlCommand(CommandText, myConnection) jEjLinux联盟
   '定义一个DataReader对象 jEjLinux联盟
   Dim DataReader1 As SqlDataReader jEjLinux联盟
   'i = 索引变量(用于填写数组) jEjLinux联盟
   'NumPoints = 表示数据库中数据点个数的整数 jEjLinux联盟
   'aX = 存放X值的数组 jEjLinux联盟
   'aY = 存放Y值的数组 jEjLinux联盟
   Dim i, NumPoints, aX, aY jEjLinux联盟
   '定义图表对象、数据系列对象,OWC绘图必需 jEjLinux联盟
   Dim Chart1, Chart1_Series1 jEjLinux联盟
   jEjLinux联盟
   '打开数据库连接 jEjLinux联盟
   myConnection.Open() jEjLinux联盟
   '步骤一:计算数据点个数,结果保存在 jEjLinux联盟
   'NumPoints变量中。 jEjLinux联盟
   NumPoints = myCount.ExecuteScalar() jEjLinux联盟
   '调试信息 jEjLinux联盟
   'Response.Write(NumPoints & "#") jEjLinux联盟
   '根据数据点个数,调整数组的大小 jEjLinux联盟
   ReDim aX(NumPoints - 1) jEjLinux联盟
   ReDim aY(NumPoints - 1) jEjLinux联盟
   '步骤二:获取数据点,在aX和aY数组中返回X和 jEjLinux联盟
   'Y值 jEjLinux联盟
   DataReader1 = myCommand.ExecuteReader() jEjLinux联盟
   i = 0 jEjLinux联盟
   While DataReader1.Read jEjLinux联盟
   aX(i) = DataReader1.GetValue(0) jEjLinux联盟
   aY(i) = DataReader1.GetValue(1) jEjLinux联盟
   i = i + 1 jEjLinux联盟
   End While jEjLinux联盟
   DataReader1.Close() jEjLinux联盟
   jEjLinux联盟
   '调试信息 jEjLinux联盟
   'For i = 0 to NumPoints - 1 jEjLinux联盟
   ' Response.Write(aX(i) & "|" & aY(i) & "#") jEjLinux联盟
   'Next i jEjLinux联盟
   '关闭数据库连接 jEjLinux联盟
   myConnection.Close() jEjLinux联盟
   '新建一个绘图空间 jEjLinux联盟
   ChartSpace1 = new Owc.ChartSpace() jEjLinux联盟
   '在ChartSpace1绘图空间中新建一个图表 jEjLinux联盟
   Chart1 = Chartspace1.Charts.Add(0) jEjLinux联盟
   '在Chart1图表中加入一个数据系列 jEjLinux联盟
   Chart1_Series1 = Chart1.SeriesCollection.Add(0) jEjLinux联盟
   '将Chart1_Series1数据系列定义成XY散点图, jEjLinux联盟
   '带连线和数据点标记 jEjLinux联盟
   Chart1_Series1.Type = _ jEjLinux联盟
   Chartspace1.Constants.chChartTypeScatterLineMarkers jEjLinux联盟
   '命名数据系列(名称将在图例中显示出来) jEjLinux联盟
   Chart1_Series1.SetData (OWC.ChartDimensionsEnum.chDimSeriesNames, _ jEjLinux联盟
   OWC.ChartSpecialDataSourcesEnum.chDataLiteral, "Series1") jEjLinux联盟
   '将数组中的数据植入图表 jEjLinux联盟
   Chart1_Series1.SetData (OWC.ChartDimensionsEnum.chDimXValues, _ jEjLinux联盟
   OWC.ChartSpecialDataSourcesEnum.chDataLiteral, aX) jEjLinux联盟
   Chart1_Series1.SetData (OWC.ChartDimensionsEnum.chDimYValues, _ jEjLinux联盟
   OWC.ChartSpecialDataSourcesEnum.chDataLiteral, aY) jEjLinux联盟
   '设置绘图空间格式 jEjLinux联盟
   With ChartSpace1 jEjLinux联盟
   '.Border.Color = Chartspace1.Constants.chColorNone jEjLinux联盟
   End With jEjLinux联盟
   '设置图表格式 jEjLinux联盟
   With Chart1 jEjLinux联盟
   '.SeriesCollection(0).Interior.Color = "Rosybrown" jEjLinux联盟
   '.PlotArea.Interior.Color = "Wheat" jEjLinux联盟
   .HasLegend = true jEjLinux联盟
   .Legend.Position = _ jEjLinux联盟
   OWC.ChartLegendPositionEnum.chLegendPositionBottom jEjLinux联盟
   .HasTitle = true jEjLinux联盟
   .Title.Caption = "XY散点图示例" jEjLinux联盟
   .Axes(0).HasTitle = true jEjLinux联盟
   .Axes(0).Title.Caption = "Y轴" jEjLinux联盟
   .Axes(1).HasTitle = true jEjLinux联盟
   .Axes(1).Title.Caption = "X轴" jEjLinux联盟
   End With jEjLinux联盟
   jEjLinux联盟
   '以GIF图形的形式返回图表 jEjLinux联盟
   Response.BinaryWrite(Chartspace1.GetPicture ("gif", 500, 400)) jEjLinux联盟
   Response.End jEjLinux联盟
   End Sub jEjLinux联盟
  End Class jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  下面是一个运行实例: jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  Microsoft.Office.Interop名称空间指向Office XP PIA,PIA应该事先安装到Web服务器上。编译源代码时要用到Office XP PIA OWC的DLL文件。如果用VS.NET编译,只要加入一个Microsoft.Office.Interop.Owc.dll文件的引用即可(位于解开Office XP PIA文件的目录),如果从命令行编译,必须按照下列方式使用/r:参数: jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  vbc /t:library /out:bin\getchart.dll /r:System.dll /r:System.Web.dll jEjLinux联盟
   /r:System.Data.dll jEjLinux联盟
   /r:C:\oxppia\Microsoft.Office.Interop.Owc.dll getchart.aspx.vb jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
   jEjLinux联盟
  上面的代码有许多值得一提的地方。首先,我们假定数据源位于MSSQL数据库OWCDEMO,该数据库有一个OWCDATA表,OWCDATA表有两个数值列,分别是X和Y。getchart.aspx的目标就是从数据库获取记录,然后用散点图(XY)描述这些数据。 jEjLinux联盟
   jEjLinux联盟
  OWC图表的数据点无法直接从ASP.NET的DataSet获取,因此,我们首先要把数据库的数据装入数组,然后用数组的数据填写OWC图表的数据点。如果要对本例作改进的话,最好开发一个ASP.NET服务器控件,它能够从抽象的数据源(包括DataSet对象、XML文件或数组)获取数据并生成XY散点图。 jEjLinux联盟
   jEjLinux联盟
  DataReader要比DataSet快速、高效,不过,我们首先要确定数据库中的记录数量,根据记录数量来调整数组的大小。为此,我们先用一个SQL Select count(*)查询获取记录数量,然后定义数组大小,最后用第二个SQL SELECT查询获取数据库记录。 jEjLinux联盟
   jEjLinux联盟
  如果我们要让散点图的各个点用折线连接起来,记录必须依照X轴排序,这通过一个SQL ORDER BY子句实现。 jEjLinux联盟
   jEjLinux联盟
  OWC的图表建立在“绘图空间”上。一个绘图空间可以包含一个或多个图表,每一个图表可以有一个或多个数据系列。在生成OWC图表时,我们首先创建一个绘图空间,将一个图表加入到绘图空间,设置图表的类型,添加数据系列,最后用数组的数据填写数据系列。 jEjLinux联盟
   jEjLinux联盟
  另外,我们还可以设置(可选)各种布局参数,例如颜色、坐标标题、图表标题、图例,等等。OWC提供了数百个布局参数,我们可以随心所欲地调整图表。当然,对于不同的图表类型,绘图模式也略有不同,例如,饼图和散点图的参数设置方法是不同的。在OWC 10安装包中有OWC帮助文件,里面详细说明了OWC图表模型。 jEjLinux联盟
   jEjLinux联盟
  最后,Response.BinaryWrite参数指定了要输出的图形类型(GIF),以及图形的宽度、高度(以像素为单位)。在这里,我们可以根据需要缩放从OWC图表生成的图形。 Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·如何将asp.net的后台cs代码移动到页面上  (2007-10-29 14:25:45)
 ·读Programming ASP.NET中文版控件  (2007-10-29 14:15:23)
 ·ASP.NET 2.0如何封装JS和CSS文件为服务器端控件  (2007-10-29 14:13:11)
 ·asp.net中用VML动态的画出数据分析图表详解  (2007-10-29 14:07:23)
 ·asp.net性能的技巧  (2007-10-26 13:23:05)
 ·asp.net多频道网站开发架构浅析  (2007-10-26 13:22:34)
 ·让 SortTable 和 Asp.net Ajax 和睦相处  (2007-10-26 13:21:44)
 ·Jimmy’s 使用Asp.Net Ajax 构建三层式Web 应用程序  (2007-10-26 13:14:20)
 ·asp.net 2.0 ajax中使用PopupControlExtender  (2007-10-26 13:13:35)
 ·asp.net 2.0 ajax中实现弹出窗口报警提示  (2007-10-26 13:12:27)