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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

对Dev的GridControl/GridView控件进行分组并展开操作

發(fā)布時間:2025/4/9 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对Dev的GridControl/GridView控件进行分组并展开操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天在模塊編寫中碰到了對表格的分組,特意在這里把它記錄下來。

一、背景:Dev14.1.3,GridControl,.NET4.0+C#

二、過程

1、GridControl設計

一共添加4列:在下面主要是對第一和第二列進行操作,根據第一列進行分組,并對第二列進行縱向單元格合并操作;

2、最簡單的分組

僅僅根據“離線要素圖層”列展示分組結果,分組標題默認使用Dev自帶的設置,代碼如下:

private void SetGrouping(){//處理數據源 PageCtrl_Second();MergeDataTables(DsParallel);DataColumn dc = new DataColumn("select", typeof(int));dc.DefaultValue = 1;dtParallel1.Columns.Add(dc);//將DataTable列綁定到GridControl上gc_ClnOffLine.FieldName = dtParallel1.Columns["FeaCls_OffLine"].ColumnName;gc_ClnStationseries.FieldName = dtParallel1.Columns["Ss_ID"].ColumnName;gc_ClnSelect.FieldName = dtParallel1.Columns["select"].ColumnName;gc_ClnPipelineName.FieldName = dtParallel1.Columns["PipeLineName"].ColumnName;gridView1.OptionsView.AllowCellMerge = true;gc_ClnOffLine.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;gc_ClnSelect.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;gc_ClnStationseries.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;//分組gc_ClnOffLine.GroupIndex = 0;//設置分組列 gridView1.OptionsBehavior.AutoExpandAllGroups = true;//展開所有分組gridControl1.DataSource = dtParallel1;}

其中真正起到作用的就是設置分組列的那一行,也就是設置某一列的GroupIndex(該值默認均為-1,即不分組);這是最低的分組顯示要求,結果如下圖:將“離線要素圖層”那一列作為分組列,然后系統(tǒng)默認的顯示方式就是[列名+值]

當然也可以通過GridControl的事件重新制定分組的名稱,需要使用CustomDrawGroupRow事件,實現(xiàn)代碼如下:

private void gridView1_CustomDrawGroupRow(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e){GridGroupRowInfo pGridGroupRowInfo = e.Info as GridGroupRowInfo;string strTransfer = string.Format("OffLineFeature:{0}",pGridGroupRowInfo.GroupValueText);pGridGroupRowInfo.GroupText = strTransfer;//注:GroupValueText的值代表的是這個分組單元格內的值;GroupText的值是最后展示在分組行中的內容}

效果如圖所示:,分組行展示的內容已經修改為自定義的了。

3、分組名稱+字段統(tǒng)計

有時候,我們除了需要展示分組的名稱之外,還想對每一個分組中的數據行數進行統(tǒng)計,此時就需要添加一個GridGroupSummaryItem對象到gridview中,并設置他的DisplayFormat的值和SummaryType的值,具體的值的內容可以在dev代碼提示中查看,具體實現(xiàn)如下:

private void SetGrouping(){//處理數據源 PageCtrl_Second();MergeDataTables(DsParallel);DataColumn dc = new DataColumn("select", typeof(int));dc.DefaultValue = 1;dtParallel1.Columns.Add(dc);//將DataTable列綁定到GridControl上gc_ClnOffLine.FieldName = dtParallel1.Columns["FeaCls_OffLine"].ColumnName;gc_ClnStationseries.FieldName = dtParallel1.Columns["Ss_ID"].ColumnName;gc_ClnSelect.FieldName = dtParallel1.Columns["select"].ColumnName;gc_ClnPipelineName.FieldName = dtParallel1.Columns["PipeLineName"].ColumnName;gridView1.OptionsView.AllowCellMerge = true;gc_ClnOffLine.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.True;gc_ClnSelect.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;gc_ClnStationseries.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;//分組gc_ClnOffLine.GroupIndex = 0;//設置分組列DevExpress.XtraGrid.GridGroupSummaryItem item = new DevExpress.XtraGrid.GridGroupSummaryItem();item.DisplayFormat = "并行站列數量:{0}";//默認"{0}: [#image]{1} {2}"item.SummaryType = DevExpress.Data.SummaryItemType.Count;gridView1.GroupSummary.Add(item);gridView1.OptionsBehavior.AutoExpandAllGroups = true;//展開所有分組gridControl1.DataSource = dtParallel1;}

其實現(xiàn)效果如下圖所示,在最初的[列名+值]后面加上了我們添加進來的GridGroupSummaryItem所指定的值;

擴展:這里我只是添加了一個GridGroupSummaryItem,但是Dev還可以連續(xù)添加多個GridGroupSummaryItem到GridView中,多個item之間會用【,】分隔開。

4、總結

  這里的分組我只列出來這兩種:①直接展示【列名+值】;②增加一個GridGroupSummaryItem顯示相應的統(tǒng)計。

轉載于:https://www.cnblogs.com/wolfocme110/p/9513675.html

總結

以上是生活随笔為你收集整理的对Dev的GridControl/GridView控件进行分组并展开操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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