動態合並Repeater控件數據列


前天Insus.NET實現《動態合並GridView數據行DataRow的列》。今天再玩玩Repeater控件,功能也是動態合並某列欄位。
Repeater控件跟GridView控件一樣集成度高,越是自由與松散的,在合並時,越是不好控制。

我們在網站上,創建一個網頁,拉Repeater控件至網頁:



去.aspx.cs為Repeater控件綁定數據,數據庫表格,存儲過程,以及連接數據庫獲取數據,在此不提供。



瀏覽效果:


OK,我們開始實現合並數據列,博文開始有提及,由於Repeater控件與GridVeiw控件有很大不一樣,合並方法也沒有什么參考可言。但有一點是相同的地方,合並的事件還是有ItemCreated中進行。


上圖中為Repeater控件添加OnItemCreated="RepeaterFruit_ItemCreated"事件,拿掉原ItemTemplate模版內的html,用Literal控件來替代。也就是說,所有數據行均在后台OnItemCreated="RepeaterFruit_ItemCreated"事件中動態產生。

去.aspx.cs定義兩個頁面級的變量,參考下圖#1部分代碼。而#2部分代碼塊,是從數據源分析出合並列中,每個可合並的字段所占有幾行數據,並填充入Dictionary<string,int>集合中。



下面開始寫OnItemCreated事件:


#1代碼行,是從集合中,獲取匹配當前數據行合並列有幾行可合並。
#2代碼塊,如果只有一行,就不必做任何合並動作,原原本本產生一行數據即可。
#3代碼塊,如果遇上需要合並的字段,而且是剛第一次產生,需要為合並列添加rowspan屬性,並賦值。
#4代碼塊,是相同的合並列,不必再動態產生了。

程序運行之后的效果:



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM