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