1.第一列是通过js动态插入的,仅用于勾选,实现了时下流行的勾选式删除操作;
2.切换到以树显示,并让勾选列和第一列(树的排序列)合并显示: .
3.多行选择(curselmode="rows")状态下的表现形式: (注意shift、Ctrl + 鼠标左键 的用法);


4.其它功能演示:按表达式快速删除选中行:     (注:源码为 AF.func("DeleteRows", "checked=1");)

5.其它功能演示:Checkbox 的交互方式: 



1.查看创建该TreeList的XML描述文件,关注实现旋转背景色、4色表头的<Properties>部分;
2.源码分析:
<script language="JavaScript">
 function OnReady(id)
 {
  AF.func("Build", "treelist/t17.xml");
  AF.func("Load", "treelistdata/data.txt");
  //在第一列位置插入新列
  AF.func("InsertCol", "0\r\nname=checked;isCheckboxOnly=true");
 }
 function deletechecked()
 {
  //删除符合表达式的行
  AF.func("DeleteRows", "checked=1");
 }
</script>
  当然,不是说勾选的列必须动态插入,本例只是演示了动态插列功能。
  其实在很多场合都用得到动态增删列,以提高XML文档的复用率。

3.Checkbox和树的排序列合并显示,这也是一种常见的场景,实现很简单:
function combine()
{
 AF.func("SetProp", "sort \r\n country a,shipcity a");	//排序
 AF.func("SetProp", "isTree \r\n true");  //切换成树
 AF.func("SetColProp", "checked \r\n TreeCombine \r\n auto,node");  //合并
}
  里面关键是第五行,当然,你也可以将 TreeCombine 直接写到XML中.

4.列的单选
  有一种需求是: 要求只能选一行,其它行能自动清除选择,相当于在垂直方向保持单选。你在html中加入如下源码,看看效果怎样:
function OnEvent(id, Event, p1, p2, p3, p4)
{
 if(id == 'AF' && Event=='EditChanged') {
  if(p2 == 'checked') {
   AF.func("SetColCellData", p2+ "\r\n");
   AF.func("SetCellData", p1+ "\r\n" +p2+ "\r\n1");
  }
 }
}