日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GridView+ZedGraph【转】

發布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GridView+ZedGraph【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

edgraph圖表控件的強大功能令人出乎意料,與OWC相比我想應該毫不遜色,近來需求要求作出相關數據統計,不想使用BI這類的強大東西,所以搜索到 了免費的開源的Zedgraph控件。使用起來也非常方便,生成的效果可以說是五花八門,千姿百態。廢話少說,先看看俺生成的樣子.

圖1:


圖2:



圖3:




這 些根據俺的需求與相關統計數據,與Gridview結合起來繪制出來的圖,而從此控件的官方網站中,我們還可以看到zgraph不僅能在WebForm中 實現圖表功能,在WinForm中同樣可以實現,我在這里就只介紹一下WebForm的使用了。(而對應WinForm的使用,官方的Wiki里有很好的 example有VB的啊,有C#的啊,這里就不用啰嗦了)

圖4:



網 上在介紹Zedgraph在webForm中使用的大多數是根據Zedgraph自身所帶的數據實現,沒有與Net的相關數據控件進行結合,我在這里就根 據自己在project中所使用的gridview與Zedgraph使用的心得,與大家一起分享一下.同時歡迎大家多多指教,指正錯誤。

Step1:下載Zgraph控件?

Zgraph控件現在已經出到5.0.10版本了,分WinForm版和WebForm兩種版本,你可以直接到官方下載,也可以在我這下載哈

本站下載地址:http://www.dezai.cn/lesson_info.asp?SoftID=71??(俺可是好人,不會放蟲在里面)

官方下載地址:http://sourceforge.net/project/showfiles.php?group_id=114675


Step2:在Project中引用控件

一般情況下,此控件應該是使用在表現層(UI層),所以你可以直接在你的UI層直接引用,當然,為了你方便使用,你可以先把他加到控件箱里頭(ToolBox)

方法:?對著控件箱右鍵點擊->選擇Choose?Item?->?瀏覽?->找到你下載的控件->?選擇?就可以了

這樣你就可以在控件箱里看到ZedGraph的圖標了,你就可以像其它控件一樣使用拖拽了






上面說了這么多廢話都是前奏,我們還沒開始真正使用。


Step3:設置屬性

先把控件拖拉到頁面中或用戶控件中,ZedGraph的屬性很多,我這里只說明一下常用的幾個屬性哈,其實大多數是默認的就OK的,大多數都是對圖表的外表進行相關設置,如果你想做出非常精美的圖表,那就要對這些屬性下一番功夫了。


ID:控件ID
BarBase:?設計圖表的基準軸,默認為X
BarType:圖表的類型(餅圖,柱狀圖,曲線圖等等)
Title:圖表標題
OutPutFormat:輸出的圖表文件類型(Png,Gif,Jpeg,Ico)
width:圖表寬度
height:圖表高度
ChartFill:?圖表背景直充(俺根據字面理解,可能不太準確)
ChartBoder:?設計圖表邊框樣式
lineType:線條類型
......?.......?
(老實說,我一般在提供的屬性里面只是去整寬度跟高度,其它的就很少動了)


Step4:引用控件

這幾個東西,你就不要丟了,記得搞上去

using?ZedGraph;
using?ZedGraph.Web;
using?System.Drawing;
using?System.Drawing.Imaging;


Step5:初始化


不管你在頁面中(aspx)直接使用,還是在用戶控件中(ascx),均要對ZedGraph進行初始化操作,其實很簡單,你就把下面這段COPY就到你的CS里面就可以了

?private?void?InitializeComponent()
????{
????????this.ZedGraphWeb1.RenderGraph?+=?new?ZedGraph.Web.ZedGraphWebControlEventHandler(this.OnRenderGraph);//注冊事件
????????this.Load?+=?new?System.EventHandler(this.Page_Load);

????}


注意:這只是放置一張ZedGraph中生成的圖片,那假如是放兩個呢?兩個就要加一個喔

???private?void?InitializeComponent()
????{
?????????this.ZedGraphWeb1.RenderGraph?+=?new?ZedGraph.Web.ZedGraphWebControlEventHandler(this.OnRenderGraph1);//注冊事件
????????this.ZedGraphWeb2.RenderGraph?+=?new?ZedGraph.Web.ZedGraphWebControlEventHandler(this.OnRenderGraph2);//注冊事件
????????this.Load?+=?new?System.EventHandler(this.Page_Load);

????}

當你COPY了這段代碼后,還要記得在page_load()中加載

protected?void?Page_Load(object?sender,?EventArgs?e)
????{
????????

????????InitializeComponent();

????}

Step6:綁定數據

之 前在網上找到的相關教程中90%是采用官主提供的默認數組數據綁定的,最好的綁定接口是IList,由于我這沒必要用我就沒去研究哈,有興趣的兄弟們可去 去試一下,ZedGraph綁定的數據源可以是很多,起初我以為只能綁定DataSet,但后面還是可以綁定DataReader的,不僅如此,數組就更 不在話下了。我這里只用DataReader,不過話說回來,所呈現的數據都是以數組整的

6.1?數據源綁定,這個就不用多說了

我在前臺加了一個GridVidw,其Gridview的數據源是一個dataReader

?protected?void?Show()
????{
????????this.gdvEduList.DataSource?=?FeedBackInfoDataCount.EduDataCount();
????????gdvEduList.DataBind();
????}


記得在page_load()加載,那么我們的page_load就這樣的啦

?protected?void?Page_Load(object?sender,?EventArgs?e)
????{
????????Show();

????????InitializeComponent();
????}

6.2設定圖表數組綁定

這個就是核心代碼了

?private?void?OnRenderGraph(ZedGraphWeb?zgw,?Graphics?g,?MasterPane?masterPane)
????{
????????GraphPane?myPane?=?masterPane[0];

????????myPane.Title.Text?=?"消費者學歷統計";??//設計圖表的標題
????????myPane.XAxis.Title.Text?=?"學歷類型";?//X軸標題
????????myPane.YAxis.Title.Text?=?"人數";?//Y軸標題

????????PointPairList?list?=?new?PointPairList();?//初始化一個PointPariList對象,說白了就是一條曲線或一條柱子要生出來了

????????//PointPairList?list2?=?new?PointPairList();??如果你要在一個圖表城顯示多條曲線或柱子你就可以增加一個PointPariList對像,相對應下面的?y2,List2也是這個List相關的東西了

????????//PointPairList?list3?=?new?PointPairList();?//原理同上


????????for?(int?x?=?0;?x?& lt;?this.gdvEduList.Rows.Count;?x++)?//循環,x的初始值為0,最終值是我數據源中的記錄總數?這里主要是 gdvEdulist.Rows.Count的設定,根據你的數據源來設定
????????{

????????????int?careerCount?=?Convert.ToInt32(this.gdvEduList.Rows[x].Cells[1].Text.Trim());?這 個是獲取所對應的每條柱子所對應的數據的文本,我是從gridvew中直接取到的

????????????

????????????int?y?=?careerCount;//這句就是要充的值了,將CareerCount的值都整到Y里面去了,其實你也可以直接將值賦予Y,注意,這里的Y應該代表Y軸

????????????//double?y2?=?rand.NextDouble()?*?300;
????????????//double?y3?=?rand.NextDouble()?*?300;

????????????list.Add(x,?y);?//?將XY的值整到list里面存儲起來


????????????//list2.Add(x,?y2);
????????????//list3.Add(x,?y3);
????????}

????????BarItem?myCurve?=?myPane.AddBar("數據統計",?list,?Color.Green);?//增加一個Bar,List里面是不是包含了(X,Y)

????????myCurve.Bar.Fill?=?new?Fill(Color.Green,?Color.Green,?Color.Green);?//將顏色直譯


????????//BarItem?myCurve2?=?myPane.AddBar("續費",?list2,?Color.Red);
????????//myCurve2.Bar.Fill?=?new?Fill(Color.Red,?Color.White,?Color.Red);
????????//BarItem?myCurve3?=?myPane.AddBar("升級",?list3,?Color.Green);
????????//myCurve3.Bar.Fill?=?new?Fill(Color.Green,?Color.White,?Color.Green);

????????myPane.XAxis.MajorTic.IsBetweenLabels?=?true;?//這個我不知道乍么解釋,不好意思

????????string[]?labels?=?new?string[gdvEduList.Rows.Count];??

????????for?(int?i?=?0;?i?<?this.gdvEduList.Rows.Count;?i++)??//這個循環主要是取到里面的說明文字,用了一個數組的方法
????????{
???????????

????????????labels[i]?=?this.gdvEduList.Rows[i].Cells[0].Text.Trim();

????????}


???//以下這些是無關痛庠的屬性設置了,一般默認就可以

????????myPane.XAxis.Scale.TextLabels?=?labels;?

????????myPane.XAxis.Type?=?AxisType.Text;

????????myPane.Fill?=?new?Fill(Color.White,?Color.FromArgb(200,?200,?255),?45.0f);

????????myPane.Chart.Fill?=?new?Fill(Color.White,?Color.White,?45.0f);


????????masterPane.AxisChange(g);?//這句話不可少


????}

當你整完上頁這段后,你就可以得到下面這個東西了




我想大家應該大至明白乍樣用這東西了吧。

發個源碼包:點擊下載此文件


上面這個是一個柱子的生成圖,那其它圖呢?

我只把主要代碼丟出來給大家哈,有錯你就要說給我聽哈,不要我會貶你的哈

餅圖:

點擊下載此文件

多條柱子的:


點擊下載此文件

WebZedGraphDemo

點擊下載此文件



其實WinForm的跟WebForm的用法差不多,大家只要認真比較一下,就很容易從官方的example里面的提供的在WinForm的使用轉成WebForm的啦,俺們一起努力吧.


相關IT同仁的學習文章,大家都可以看看哈


ZedGraph?Wiki:

http://zedgraph.org/wiki/index.php?title=Main_Page

(codeproject.com)???http://www.codeproject.com/csharp/ZedGraph.asp?

?ZedGraph?總論(WinForm篇)http://blog.csdn.net/tjvictor/archive/2006/11/24/1412550.aspx

ZedGraph在Asp.net中的應用?http://tech.it168.com/n/2007-06-13/200706131521812.shtml

ZedGraph在Asp.net中的應用(2)?http://www.cnblogs.com/wxukie/archive/2007/05/16/748922.html

?

轉載于:https://www.cnblogs.com/AdaLoong/p/5625145.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的GridView+ZedGraph【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲又粗又长 | 天堂av免费在线 | 欧美偷拍精品 | 国产av成人一区二区三区高清 | 极品超粉嫩尤物69xx | 国产内谢 | 欧美成人aaa | 每日在线观看av | 北条麻妃av在线 | 亚洲精品粉嫩小泬 | 中文字幕视频观看 | 色综合a | 久久桃色| 69国产在线 | 免费成人深夜小野草 | 国产精品字幕 | 无限资源日本好片 | 秘密基地电影免费版观看国语 | 96久久 | 亚洲一品道 | 最近日本中文字幕 | 欧美日韩视频在线观看一区 | 观看av免费 | 欧美一级性 | 一直草| 8x8ⅹ国产精品一区二区二区 | 青青青免费在线 | 欧美亚日韩 | 亚洲欧美日韩国产综合 | 日韩毛片大全 | caoporn视频在线观看 | 国产精品成人在线观看 | 亚洲AV无码成人精品一区 | 精品久久一区二区三区 | 韩国黄色网 | 美女露出粉嫩尿囗让男人桶 | 欧美乱码精品一区二区三区 | aaaaa级片| 中文字幕在线观看不卡 | 国产精品无码影院 | 嫩草99| 国产不卡高清 | av免费看在线 | 丰满人妻综合一区二区三区 | 中文字幕1 | 久久综合中文 | 欧美不卡影院 | 男女羞羞在线观看 | 明星毛片 | 涩涩天堂 | www.xxxx欧美 | 日本作爱视频 | 日韩av中文字幕在线免费观看 | 欧亚成人av | 国产一级片在线播放 | 久久久男人天堂 | 黑人性视频 | 韩国伦理电影免费在线 | 蜜臀99久久精品久久久久小说 | 久久cao| 亚洲一级网 | 丰满人妻一区二区三区53号 | 在线99热| 在线播放少妇奶水过盛 | 久久爱综合 | 福利社区一区二区 | 黑人精品无码一区二区三区AV | 新久草视频 | 乱色精品无码一区二区国产盗 | 在线观看亚洲国产 | 亚洲精品久久久久久国 | 欧美日p视频 | 波多野一区二区三区 | 香港三级韩国三级日本三级 | 精品人妻一区二区三区免费 | 天天插天天摸 | 欧美又粗又长 | 日本熟妇毛茸茸丰满 | 色欲av永久无码精品无码蜜桃 | 亚洲欧美电影 | 亚洲午夜无码久久 | 久久久久久久偷拍 | 窝窝午夜视频 | 狠狠操在线观看 | 日本成人黄色 | 欧美日韩亚洲免费 | 青青草成人免费视频 | 一区二区三区视频网 | www视频在线观看网站 | 在线观看视频日韩 | 久草精品在线观看视频 | 久久合| 亚洲欧美日韩一区二区三区四区 | 欧美一区二区三区久久综合 | 久久精精品久久久久噜噜 | www麻豆视频 | 白丝美女被草 | 日本成人精品视频 | 在线色网|