![]() |
1.支持Shift+鼠标、Ctrl+鼠标的多行选择;表头鼠标右键菜单有“全选”、“反选”;
2.用鼠标进行Treelist之间的单行拖曳、多行拖曳; 3.表二支持自我拖曳; 4.切换成“以树方式显示”,相互拖拽; 5.单列多层树也能相互拖拽,请 |
表一 | 表二 | |
![]() |
1.查看创建该TreeList的XML描述文件; 2.源码分析:页面中创建Treelist控件实例的js如下: <script language="JavaScript"> var countForFirefox=0; var AF1Ready = 0, AF2Ready = 0; function OnReady(id) { cooper(id); } function cooper(id) { if($B.type == "firefox") { countForFirefox++; if(countForFirefox != 5) return; id=''; } if(id=='AF1' || id=='') { AF1.func("Build", "treelist/citymulti.xml"); AF1.func("Load", "treelist/city.xml \r\n Node=\\Table\\TR"); //加载指定节点的XML数据 AF1Ready = 1; } if(id=='AF2' || id=='') { AF2.func("Build", "treelist/citymulti.xml"); AF2Ready = 1; } if(id=='AF3' || id=='') { AF3.func("Build", "treelist/t2.xml \r\n editAble=false; treeformat='format=byid;autoid=true'"); AF3.func("HideCol", "kmdm \r\n true"); AF3.func("Load", "treelistdata/km.json.txt"); var handle=AF3.func("GetHandle", ""); AF3.func("EnableDrag", handle); } if(id=='AF4' || id=='') { AF4.func("Build", "treelist/t7.xml"); var handle=AF4.func("GetHandle", ""); AF4.func("EnableDrag", handle); } if(AF1Ready==1 && AF2Ready==1) { enableDrag(); AF1Ready = AF2Ready = -1; } } //用于Firefox页面的 onLoad function onPageLoad( ) { if($B.type == "firefox") cooper(''); } //Main: Enable拖曳操作 function enableDrag( ) { //Enable AF1 、 AF2 相互拖曳 var handle=AF1.func("GetHandle", ""); AF2.func("EnableDrag", handle); //Enable AF2 自我拖曳 handle=AF2.func("GetHandle", ""); AF2.func("EnableDrag", handle); } //按钮的功能: 重新执行Build( ),换成另一个Treelist function rebuild( ) { AF1.func("Build", "treelist/t2.xml \r\n editAble=false"); AF1.func("Load", "treelistdata/km.json.txt"); AF2.func("Build", "treelist/t2.xml \r\n editAble=false"); } </script> <body onload='onPageLoad( )' ...3.增强功能:Treeformat 的 "autoid=true"子句效果: 任意拖拽。 即任一行可拖拽到另一行的前、后、或作为子孙. |
4.同上,但 Treeformat 为 "byPid"。 拖拽后,Id 始终保持不变,但其 Pid 能自动更新。 这是它的XML模式文件 |