| 方案一. 通过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 的列，其列内的纵向、横向能实现自动合并；