DEV中合併列事件注意事項

大家都知道有時候用GridView回有合併列的時候。那麼需要注意些什麼呢?

第一步:我們增加一個事件,來告訴GV哪幾列需要合併:

 private void bandedGridView1_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
        {
            if (e.Column.FieldName == "PListName")
            {
               e.Merge = true;
                e.Handled = true;
            }
            else
            {
                e.Merge = false; e.Handled = true;
            }
        }


這樣能合併,但是會把所有的這列的值都合併。我們要的實際上是  如果2列的值一樣才合併,不一樣就不合並。

所以我們增加紅色部分代碼:

private void bandedGridView1_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
        {
            if (e.Column.FieldName == "PListName")
            {
                DevExpress.XtraGrid.Views.BandedGrid.BandedGridView view = sender as DevExpress.XtraGrid.Views.BandedGrid.BandedGridView;
                string val1 = view.GetRowCellValue(e.RowHandle1, e.Column).SyToString();
                string val2 = view.GetRowCellValue(e.RowHandle2, e.Column).SyToString();
                e.Merge = val1 == val2;
//e.Merge = true;
                e.Handled = true;
            }
            else
            {
                e.Merge = false; e.Handled = true;
            }
        }

紅色部分代碼的意思是,獲取第一列的值和第二列的值,比較,相等我們才合併,不相等則不合並。但是這樣的話記得綁定的數據源必須按照合併列來排序,否則達不到效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章