動態合並GridView數據行DataRow的列


前段時間,Insus.NET一直在演示GridView控件Header頭行或列:《動態變更GridView控件列名》和《動態合並或定制GridView控件Header頭某些列》,現今想演示合並Gridview的DataRow中的列。

其實合並列也不是什么復雜的問題,只想明白其中的原理,就覺得簡單至極。
數據庫方面的准備,在此例中略過。
在站點創建一個網頁,拉GridView控件到.aspx網頁中,並用自定義模版顯示數據。如下:


去.aspx.cs的code behind寫數據綁定代碼:



網頁在瀏覽時,會看到下面的效果:



看到否,上圖中第二列,有很KindName的相同的,為了界面簡潔與清晰,Insus.NET決定合並它們。為了實現數據行中的列合並,我們需要為GridView控件寫一個事件 OnRowCreated="GridViewFruit_RowCreated":




現在,我們可以去code behind寫程序了,在寫OnRowCreated事件程序之前,先需要定義一個頁面級的變量:



上圖中的變量,rowCount將記錄所有記錄總數,初始值為0。rowindex是將用來記錄行索引,初始值為0, 而mergeCellText變量是合並的字段名。

OK,下面我們開始寫OnRowCreated事件邏輯程序:



上圖中:
#35行代碼,如果不是數據行,將跳過下面的程序。
#37行,把e.Row.DataItem轉為DataRowView。
#39-#43行代碼,如果是DataRow第一行,將行索引和將要合並的列值記錄下來。
#45 -#62行代碼,均是處理非第一數據行。
#47行代碼,如果當前行需要合並的數據列值與前一行不相同的,我們就可以合並前面的數據列了。還要把當前的行索引與列值記錄下來。
#55行把相同的列拿掉。
#57行代碼是判斷是否為最后一行。
#59行代碼,做最后一次合並列。


運行的結果如下:



如果你明白上面的邏輯處理方法,做其它列合並,是輕而易舉的事情。

 


免責聲明!

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



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