欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

GroupingView控件 使用經(jīng)驗

系統(tǒng) 2049 0

???? 你是否經(jīng)常使用GridView進(jìn)行數(shù)據(jù)輸出?你是否曾經(jīng)試圖使用VS.Net自帶的GridView控件來實現(xiàn)分組統(tǒng)計等功能?是不是覺得實現(xiàn)起來很麻煩或者壓根實現(xiàn)不了?
???? 如果你不曾遇到過類似問題,那么這篇文章對你將毫無幫助。
???? 這個控件就可以為幫我們很好的解決分組統(tǒng)計等問題,功能很強大。(PS:我不是做廣告哦,只是有感而發(fā)~)當(dāng)然,除了這個控件外,還有一個 GridViewHelper 控件,同樣可以實現(xiàn)強大的分組功能,但是從我使用的體驗來說,個人更傾向 GroupingView 。可能是我對GridViewHelper使用不多的原因,我認(rèn)為使用GridViewHelper對頁面的布局基本上不需要做任何設(shè)置。而分組、統(tǒng)計等等功能,都是利用后臺代碼進(jìn)行設(shè)置,對于簡單的分組幾乎只要寫一個語句就可以實現(xiàn)。可以說是相當(dāng)方便。但是,我在使用過程中遇到幾個問題:1、如果不是利用ASP.NET 提供的數(shù)據(jù)源控件對GridView進(jìn)行數(shù)據(jù)源的綁定,而是通過在page_load事件中執(zhí)行數(shù)據(jù)源綁定,則按照示例代碼進(jìn)行編輯就無法顯示預(yù)期效果。2、由于它的方便,導(dǎo)致使用不靈活,因為有些時候我們可能希望布局上更加隨意,但由于該控件不需要對布局進(jìn)行設(shè)置,也使得我們?nèi)绻胝{(diào)整布局將會很麻煩。(以上2點,是我初淺的使用后的感覺,可能深入使用下去,還會有更多問題。當(dāng)然也可能是因為我不會用造成的。)
???? 說完了GridViewHelper,接下來就到了這篇文章的主角上場了,我在使用GroupingView中并沒有遇到上面的問題。
?????? GroupingView 控件的詳細(xì)使用介紹及下載,請 點擊 。該控件是由 Mike Ellison 開發(fā)的,我試用了一下,感覺不錯。

?????? 使用經(jīng)驗:
?????? 1.下載該控件,可以找到GroupingView.dll文件,將該dll文件添加到你的項目Bin文件夾中。
?????? 2.在要使用的頁面注冊GroupingView控件:

<% @?Register?Assembly = " GroupingView " ?Namespace = " UNLV.IAP.WebControls " ?TagPrefix = " cc1 " ? %>
?????? 3.進(jìn)行布局。你可以進(jìn)行任意的布局,比如你可以讓匯總的結(jié)果顯示在左邊、右邊,可以在行與行之間加入分隔符,可以添加其它標(biāo)記等等。
?????? 但是,首先要遵守一定的布局結(jié)構(gòu)。基本結(jié)構(gòu)如下:
< cc1:GroupingView?ID = " gvTest " ?runat = " server "  AutobindDataSourceChildren = " true " ???GroupingDataField? = ? " 分組排序的字段 " >
????
< GroupTemplate >
???????
<!-- 這里你可以顯示分組的數(shù)據(jù),這里的代碼每個分組只執(zhí)行一次 -->
???????
< asp:PlaceHolder?ID = " itemPlaceholder " ?runat = " server " ? /> ? <!-- 這個控件用來顯示分組內(nèi)詳細(xì)的item,顯示樣式由ItemTemplate決定 -->
???????
<!-- 這里你可以顯示分組的數(shù)據(jù),這里的代碼每個分組只執(zhí)行一次 -->
????
</ GroupTemplate >
????
< ItemTemplate >
  ??
<!-- 這里顯示每個分組內(nèi)的詳細(xì)數(shù)據(jù)記錄,執(zhí)行次數(shù)等于該分組內(nèi)的記錄數(shù) -->
????
</ ItemTemplate >
</ cc1:GroupingView >
  4.與數(shù)據(jù)源進(jìn)行綁定,我這里是通過在Page_Load中進(jìn)行綁定。
Code

?????
  接下來,我來舉幾個實例。
e.g. 1 效果圖如下:
  sno???? |?? sname?? |?? cname? |? score  
?????? 1????????????? s1???????????? c1?????????? 80
???????1????????????? s1???????????? c2?????????? 90
?????? 1????????????? s1???????????? c3?????????? 70
????? 總分:240
  sno???? |?? sname?? |?? cname? |? score  
???????2????????????? s2???????????? c1?????????? 80
???????2????????????? s2???????????? c2?????????? 80
???????2????????????? s2???????????? c3?????????? 80
????? 總分:240

Code


????? 其中的?<cc1:Aggregation ID="Aggregation1" runat="server" Function="Sum" DataField="score" />是該控件提供的一種集合運算控件,你可以通過設(shè)置Function來得到對某一字段進(jìn)行統(tǒng)計運算如Sum、AVG等。在ItemTemplate中,我們可以看到很熟悉的Eval,這個就是用來與數(shù)據(jù)進(jìn)行綁定,而ItemTemplate中的代碼和數(shù)據(jù)則會最終被填充到ID為 itemPlaceholder 的placeholder容器中。這樣最終就可以顯示成如效果圖所示的樣子了。

e.g.?2 效果圖如下:
  sno???? |?? sname?? |?? cname? |? score  
?????? 1????????????? s1???????????? c1?????????? 80
???????1????????????? s1???????????? c2?????????? 90
?????? 1????????????? s1???????????? c3?????????? 70
????? 總分:240 
???????2????????????? s2???????????? c1?????????? 80
???????2????????????? s2???????????? c2?????????? 80
???????2????????????? s2???????????? c3?????????? 80
????? 總分:240

????? 細(xì)心的朋友,應(yīng)該已經(jīng)看出1和2這兩個例子的區(qū)別了吧?是的,在示例2中,第二個分組的列頭不再重復(fù)顯示了。這個是怎么實現(xiàn)的呢?要實現(xiàn)這個效果就需要添加一個"OnGroupCreated"事件,這個事件在每一個分組被創(chuàng)建的時候觸發(fā),我們就在這個事件中判斷是否需要列頭,如果不需要就不顯示。
  根據(jù)Mike Ellison提供的做法是添加一個placeholder容器。然后將列頭的布局代碼移動到該容器中,然后在OnGroupCreated事件中判斷此組是否為第一組,如果不是就設(shè)置該容器的Visible屬性為false。
  前臺的布局只是增加了一個placeholder,因此就不再演示了,我把后臺的那個事件寫一下,讓大家參考一下。

Code


e.g.?3 效果圖如下:
  sno???? |?? sname?? |?? cname? |? score  
??????????????????????? ? ???????????? c1?????????? 80
???????1????????????? s1???????????? c2?????????? 90
???????????????????????? ????????????? c3?????????? 70
????? 總分:240 
????????????????????????? ???????????? c1?????????? 80
???????2????????????? s2???????????? c2?????????? 80
?????????????????????????????????????? c3?????????? 80
????? 總分:240

??????這個例子就是使分組字段在每組中只出現(xiàn)一次,而不再重復(fù)出現(xiàn)。
  要實現(xiàn)這個效果,就需要我們修改布局代碼,這個例子可以很好的說明該控件的靈活性,因為布局要怎么樣完全由我們自己說了算。如果想讓分組字段在一個組內(nèi)只出現(xiàn)一次,我們就應(yīng)該把數(shù)據(jù)直接寫到GroupTemplate中,因為這其中的代碼每一組只執(zhí)行一次。如果想讓他居中顯示,那就是合并單元格的事了。而合并單元格對于table標(biāo)記是不是很容易辦到呢?只要設(shè)置rowspan或colspan就可以搞定了。下面來看下布局代碼。

Code

e.g.?4 效果圖如下:
????? sno=1
  sno???? |?? sname?? |?? cname? |? score  
??????????????????????? ? ???????????? c1?????????? 80
???????1????????????? s1???????????? c2?????????? 90
???????????????????????? ????????????? c3?????????? 70
????? 總分:240 
????? sno=2
?????????????????????????????????????? c1?????????? 80
???????2????????????? s2???????????? c2?????????? 80
?????????????????????????????????????? c3?????????? 80
????? 總分:240
????? 大家是不是看見在每一組的列頭前又多了一條數(shù)據(jù)(用來顯示每個組的字段)。如果你看了前面幾個例子,相信這個應(yīng)該馬上能想出來怎么實現(xiàn)吧?方式很多,比如用表格、DIV等+Eval。具體實現(xiàn)方式就不寫了,就當(dāng)是測驗下自己吧。如果實在不會,就給我發(fā)EMail吧~

  看了上面的這些例子,你是不是覺得使用這個控件似乎與自帶的GridView控件一點沒聯(lián)系了,其實不然。我們上面呈現(xiàn)數(shù)據(jù)的方式,都是使用table,你還可以直接把一個GridView放在GroupTemplate中,這樣會更加方便,不過肯定不如table靈活多變(個人認(rèn)為)。關(guān)于如何使用GridView來呈現(xiàn)數(shù)據(jù),我就不舉例了。大家只要去我提供的網(wǎng)址下載該控件,里面包含很多Sample,Sample1中就是用的GridView。?

GroupingView控件 使用經(jīng)驗


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩电影在线看 | 美女羞羞视频网站 | 精品一区二区久久久久久久网站 | 久久色伦理资源站 | 日韩欧美亚洲国产 | 亚洲欧美视频网站 | 伊人蕉久影院 | 中文字幕在线视频日本 | 久久精品免费 | 亚洲精品一区中文字幕乱码 | www.久久久.com| 国产亚洲精品久久久极品美女 | 婷婷综合缴情亚洲五月伊 | 久久国产热视频 | 看一下毛片| 日韩成人 | 黄在线免费| 99精品视频在线免费观看 | 成年人在线播放 | 二性视频| 91青青草视频 | 国产精品美女久久久免费 | 97超精品视频在线观看 | 成人小视频在线观看免费 | 久久亚洲日本不卡一区二区 | 免费中文字幕 | 欧美一区二区三区播放 | 一国产一级淫片a免费播放口 | 欧美成a人片在线观看久 | 免费播放春色aⅴ视频 | 在线观看国产 | 五月天激情综合网 | 综合第一页 | 偷偷狠狠的日日高清完整视频 | 欧美日韩一区二区在线视频播放 | 欧美一级α片 | 91在线播放免费不卡无毒 | 天天狠狠色噜噜 | 久久视频国产 | 亚洲午夜精品视频 | 波多野结衣家教老师 |