![]() |
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");
}
}
}
|