protected void ASPxGridView1_CustomCellMerge(object sender, ASPxGridViewCustomCellMergeEventArgs e)
{
string sFiledName = “”;//当前单元格所在列的列名定义
sFiledName = ((GridViewEditDataColumn)e.Column).FieldName;//由于e.Column继承GridViewEditDataColumn父类,所以强转成父类然后调用FieldName即可获取列名
if (lMergeFileds.Contains(sFiledName))//lMergeFileds:List集合,即需要合并列的列名集合,sFiledName:当前单元格所在列名
{
int iFirst_Row = e.RowVisibleIndex1;//当前行的行号
int iSecond_Row = e.RowVisibleIndex2;//下一行的行号
object oFirst_Value = e.Value1;//当前行单元格的值
object oSecond_Value = e.Value2;//下一行单元格的值
object oYwbh_First = ASPxGridView1.GetRowValues(iFirst_Row, sMergeByKey);//获取当前行关键列的单元格的值,注:关键列是指依据哪列进行合并的列名(字符型)
object oYwbh_Second = ASPxGridView1.GetRowValues(iSecond_Row, sMergeByKey);//获取第二行关键列的单元格的值,注:关键列是指依据哪列进行合并的列名(字符型)
if (oYwbh_First.Equals(oYwbh_Second))//当第一行业务编号与第二行业务编号相同时
{
if (oFirst_Value.Equals(oSecond_Value))//当第一行单元格的值与第二行单元格的值相同时
{
e.Merge = true;//合并
}
else//当第一行单元格的值与第二行单元格的值不相同时
{
e.Merge = false;//不合并
}
}
else//当第一行业务编号与第二行业务编号不相同时
{
e.Merge = false;
}
}
e.Handled = true;//关键代码:此句负责执行上面的合并,刷新客户端的表格中的合并情况
}