自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET MVC 3 Beta中超酷的Chart

開發(fā) 后端
本文將介紹到ASP.NET MVC 3 Beta中才內(nèi)置的Chart,包括Chart數(shù)據(jù)源的配置、Chart的顯示、Chart保存三個(gè)方面。

前面一篇文章:ASP.NET MVC 3 Beta初體驗(yàn)之WebGrid介紹了WebGrid控件的使用,ASP.NET MVC 3 Beta中才內(nèi)置Chart的。這篇文章中將介紹Chart的使用。包括Chart數(shù)據(jù)源的配置、Chart的顯示、Chart保存三個(gè)方面。Chart是很多系統(tǒng)中使用,所以在ASP.NET MVC 3 Beta初體驗(yàn)之中介紹它是很有必要的。

1、配置Chart的數(shù)據(jù)源

給Chart配置數(shù)據(jù)源大概有三種方式。

***種:使用數(shù)組示例:Controller代碼:

  1. public ActionResult BasicChart(){           
  2.    return View();       
  3.    } 

BasicChart.cshtml代碼:

  1. <p>    @{      
  2. var key = new Chart(width: 600, height: 400)      
  3. .AddTitle("人員流動(dòng)情況")      
  4. .AddSeries(name: "Employee",xValue: new[] {    
  5. "一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份"}, yValues: new[] { "2", "6", "4", "5", "3","4","9","2","5"})     
  6.  .Write();     
  7.  }</p> 

從上面代碼可以看到,我給 Chart的xValue配置了一個(gè)數(shù)組,相應(yīng)的yValue也配置了一個(gè)相應(yīng)的數(shù)組。

運(yùn)行效果:

此時(shí),我們發(fā)現(xiàn)這個(gè)圖形是單獨(dú)顯示的,沒(méi)有站點(diǎn)的樣式和母版。下面實(shí)現(xiàn)將這個(gè)圖形顯示在一個(gè)頁(yè)面中。 

定義一個(gè)Action:

  1. public ActionResult ShowBasicChart()  
  2.  {          
  3.     return View();     
  4.      } 

View代碼:定義一個(gè)img標(biāo)簽,將src改成生成圖片的action。

  1. <p><img src="BasicChart" /> </p> 

效果:有了站點(diǎn)樣式和母板:

第二種方式:數(shù)據(jù)庫(kù)查詢

示例:

  1. @{       
  2. var db = Database.Open("SmallBakery");       
  3. var data = db.Query("SELECT Month, Number FROM Employee");       
  4. var key = new Chart(width: 600, height: 400)           
  5. .AddTitle("人員流動(dòng)")          
  6. .DataBindTable(dataSource: data, xField: "Month")           
  7. .Write(); } 

第三種方式:XML示例:

  1. @using System.Data; @{       
  2. var dataSet = new DataSet();       
  3. dataSet.ReadXmlSchema(Server.MapPath("~/App_Data/data.xsd"));       
  4. dataSet.ReadXml(Server.MapPath("~/App_Data/data.xml"));       
  5. var dataView = new DataView(dataSet.Tables[0]);       
  6. var key = new Chart(width: 600, height: 400)           
  7. .AddTitle("Sales Per Employee")           
  8. .AddSeries("Default", chartType: "Pie",             
  9. xValue: dataView, xField: "Name",               
  10. yValues: dataView, yFields: "Sales")           
  11. .Write(); } 

由于這三種方式都類似,了解其中一種,其余的類似,就不細(xì)說(shuō)了,為了簡(jiǎn)單起見,下面的例子都是用數(shù)組的方式來(lái)實(shí)現(xiàn)。

2、Chart的顯示:

chartType屬性:它有一個(gè)chartType屬性,可以定義顯示的方式。比如將上面的例子的chartType定義為"Pie",就顯示為餅圖。

  1. @{              
  2. var key = new Chart(width: 600, height: 400)                  
  3. .AddTitle("人員流動(dòng)情況")                  
  4. .AddSeries(name: "Employee",chartType: "Pie", xValue: new[] {  "一月份""二月份""三月份""四月份""五月份""六月份""七月份""八月份""九月份"}, yValues: new[] { "2""6""4""5""3","4","9","2","5"})                
  5. .Write();         

效果:

template屬性:它可以定義背景模板,如修改代碼為:template: ChartTheme.Green

代碼

  1.  @{      
  2. var key = new Chart(width: 600, height: 400,template: ChartTheme.Green)      
  3. .AddTitle("人員流動(dòng)情況")      
  4. .AddSeries(name: "Employee",xValue: new[] {  "一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份"}, yValues: new[] { "2", "6", "4", "5", "3","4","9","2","5"})      
  5. .Write();    } 

效果:

3、Chart保存

將Chart保存到緩存中:看下面代碼:

  1. @{           
  2. var chartKey = Request["key"];       
  3. if (chartKey != null)       
  4. {                      
  5. var cachedChart = Chart.GetFromCache(key: chartKey);                
  6. if (cachedChart == null)               
  7. {                     
  8. cachedChart = new Chart(600, 400);                       
  9. cachedChart.AddTitle("Cached Chart -- Cached at " + DateTime.Now);                    
  10. cachedChart.AddSeries(                                
  11. name: "Employee",                    
  12. axisLabel: "Name",                           
  13. xValue: new[] {  "一月份""二月份""三月份""四月份""五月份""六月份""七月份""八月份""九月份"},                    
  14. yValues: new[] { "2""6""4""5""3","4","9","2","5"});                         
  15. cachedChart.SaveToCache(key: chartKey,minutesToCache: 2,slidingExpiration: false);                   
  16.  }                    
  17. Chart.WriteFromCache(chartKey);      
  18.    }    } 

Chart.GetFromCache(key: chartKey)將根據(jù)key從緩存中取出Chart,cachedChart.SaveToCache(key: chartKey,minutesToCache: 2,slidingExpiration: false)是將Chart緩存起來(lái)??聪聢D:

當(dāng)再次請(qǐng)求的時(shí)候,就直接從緩存中取數(shù)據(jù)。設(shè)置緩存兩分鐘,兩分鐘之后這次的緩存失效。

將Chart保存為圖片:

使用下面代碼將圖形保存為圖片:

  1.     @{      
  2. var filePathName = "_ChartFiles/chart01.jpg";      
  3. if (!File.Exists(Server.MapPath(filePathName)))      
  4. {      
  5. var chartImage = new Chart(600, 400);    
  6. chartImage.AddTitle("Chart Title");    
  7. chartImage.AddSeries(      
  8. name: "Employee",    
  9. axisLabel: "Name",    
  10. xValue: new[] {  "一月份""二月份""三月份""四月份""五月份""六月份""七月份""八月份""九月份"},      
  11. yValues: new[] { "2""6""4""5""3","4","9","2","5"});    
  12. chartImage.Save(path: filePathName);    
  13.   }    } 

保存之后的圖片:

將Chart保存為保存為XML:

  1.     @{     
  2. Chart chartXml;      
  3. var filePathName = "_ChartFiles/XmlChart.xml";      
  4. if (File.Exists(Server.MapPath(filePathName)))     
  5.  {    chartXml = new Chart(width: 600,height: 400,templatePath: filePathName);    
  6.   }      
  7. else {      
  8. chartXml = new Chart(width: 600,height: 400);    
  9. chartXml.AddTitle("Chart Title -- Saved at " + DateTime.Now);      
  10. chartXml.AddSeries(     
  11. name: "Employee",    axisLabel: "Name",    
  12. xValue: new[] {  "一月份""二月份""三月份""四月份""五月份""六月份""七月份""八月份""九月份"},      
  13. yValues: new[] { "2""6""4""5""3","4","9","2","5"});    
  14. chartXml.SaveXml(path: filePathName);    
  15.   }    
  16.   chartXml.Write();    } 

從上面代碼我們可以看到,可以通過(guò)templatePath將XML轉(zhuǎn)換成Chart。通過(guò)SaveXml可以將Chart保存為XML。生成的XML如下:

代碼

  1. <Chart Width="600" Height="400">    
  2. <Series>      
  3. <Series Name="Employee" XValueType="String" YValueType="String" ChartArea="Default" AxisLabel="Name">        
  4. <Points>          
  5. <DataPoint YValues="2" AxisLabel="一月份" />         
  6. <DataPoint YValues="6" AxisLabel="二月份" />         
  7. <DataPoint YValues="4" AxisLabel="三月份" />         
  8. <DataPoint YValues="5" AxisLabel="四月份" />         
  9. <DataPoint YValues="3" AxisLabel="五月份" />         
  10. <DataPoint YValues="4" AxisLabel="六月份" />         
  11. <DataPoint YValues="9" AxisLabel="七月份" />         
  12. <DataPoint YValues="2" AxisLabel="八月份" />         
  13. <DataPoint YValues="5" AxisLabel="九月份" />       
  14. </Points>      
  15. </Series>    
  16. </Series>    
  17. <ChartAreas>     
  18. <ChartArea Name="Default">     
  19. </ChartArea>    
  20. </ChartAreas>    
  21. <Titles>    
  22. <Title Name="Title1" Text="Chart Title -- Saved at 2010/10/19 23:41:02">      
  23. </Title>    
  24. </Titles></Chart> 

總結(jié):本文就三個(gè)方面介紹了ASP.NET MVC 3 Beta中的Chart。包括它的數(shù)據(jù)源配置、顯示以及保存。

原文標(biāo)題:ASP.NET MVC 3 Beta初體驗(yàn)之超酷的Chart

鏈接:http://www.cnblogs.com/zhuqil/archive/2010/10/20/asp-net-mvc-3-chart.html

【編輯推薦】

 

  1. 詳解ASP.NET MVC 3 beta新特性
  2. ASP.NET MVC 3讓依賴注入實(shí)現(xiàn)得更簡(jiǎn)單
  3. 詳解ASP.NET MVC 3 beta新特性
  4. ASP.NET MVC 3新特性與NuPack功能詳解
  5. .NET開發(fā)人員應(yīng)該關(guān)注的七個(gè)開源項(xiàng)目
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2010-10-12 09:52:02

ASP.NET MVC

2009-07-23 10:08:24

asp.net mvc

2010-10-18 09:03:44

ASP.NET MVC

2010-12-07 09:38:15

ASP.NET MVC

2011-04-14 09:19:22

ASP.NET MVC

2009-07-20 16:44:56

ASP.NET MVCIValueProvi

2011-01-28 09:45:29

ASP.NET MVC

2009-07-22 13:16:04

MvcAjaxPaneASP.NET MVC

2009-07-31 12:43:59

ASP.NET MVC

2009-07-24 13:20:44

MVC框架ASP.NET

2009-10-29 09:15:32

ASP.NET MVCDropDownLis

2009-04-08 09:58:07

ASP.NET MVCTempData框架

2009-07-22 09:11:02

Action方法ASP.NET MVC

2009-07-20 15:44:32

ASP.NET MVC

2011-01-15 23:07:59

2009-07-23 15:44:39

ASP.NET MVC

2009-07-22 10:09:59

ASP.NET MVC

2009-07-23 14:31:20

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-07-20 10:53:59

ASP.NET MVC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)