大家都知道有時候用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;
}
}
紅色部分代碼的意思是,獲取第一列的值和第二列的值,比較,相等我們才合併,不相等則不合並。但是這樣的話記得綁定的數據源必須按照合併列來排序,否則達不到效果。