方案一. 通过API合并单元格,改变了列表的外观
您可以点击“解除合并”,查看合并前的模样;
  

方案二.通过 VColSep(虚拟列分隔符)属性指定数据的分隔符,让其看起来是多列



1.方案一的关键源码分析:
function OnReady(id)
{
 if(id=='AF1') {
  AF1.func("SetRedrawAble", "false");		//关闭重画, 否则屏幕能看到合并的切换过程
  AF1.func("Build", "treelist/merge.xml \r\n fadeInStep=0");  		//关闭淡入淡出效果 (这个例子的数据就在XML模版文件中)
  merge();
  AF1.func("SetRedrawAble", "true");		//开启重画
 }
 ...
}
//合并
function merge()
{
 //纵向合并
 AF1.func("mergeSame", "col=fl");  //合并第一列
 AF1.func("mergeSame", "col=status1");   //合并第二列
 AF1.func("mergeSame", "col=status2");   //合并第三列
  
 //横向逐行合并
 for(row=0; row<AF1.func("GetRows", ""); row++)
  AF1.func("mergeSame", "isDemergeFirst=false; row=" +row+ ";col2=status2");
}
//解除合并
function demerge()
{
  AF1.func("demerge","");
}

2.方案二的关键是它的XML描述文件中的前二列定义了 VColSep 属性,设定了 VColSep 的列,其列内的纵向、横向能实现自动合并;