RT.
通过勾选CheckBox,实现树形菜单的切换.
功能基本实现了.
但是出现了一个问题.
当我在Tree1获得了选中节点的值后,并设置到一个参数里后,在显示的表格里添加一条当前选中的记录.
但当点击checkBox切换到Tree2时,同样操作后.Tree1获得的值被Tree2获得的Node值所覆盖了.
树2<Control id="tree2" type="Tree">
<Events>
<Event name="beforeExpandNode">
<![CDATA[
var brancode = "%{#session.CheckIn.BranCode}";
if(brancode=="00"){
brancode=null;
}
 if (node.children().getLength()>0) return;
  var BMP = "../../images/node.gif";
var dataset ="";
if(node.getTag()!=null){
  dataset=BranDataset3;
  dataset.parameters().clear();
  dataset.parameters().setValue("areacode", node.getTag(),"string");
  if(brancode!="00"){
  dataset.parameters().setValue("brancode", brancode,"string");
  
  }
  dataset.flushData();
  }else{
  dataset=BranDataset2;
  dataset.parameters().clear();
  dataset.flushData();
  }  
  if (node.getLevel() == 0 && brancode!="00") 
 {
        var newNode = tree.addNode(node, "全部");
        newNode.setHasChild(true);
        newNode.setIcon("../../images/share.gif");
        newNode.setExpandedIcon("../../images/share.gif");
        newNode.setCheckable(true);
    }
    else
    {     
         var ParentBranID = 0;
         if(node.getTag() == null)
          ParentBranID = 0;
         else
          ParentBranID = node.getTag();
         var level = node.getLevel();                        
     
 while (!dataset.isLast())
   {
     var label = dataset.getString("areaname");
     var newNode = tree.addNode(node, label);
     newNode.setCheckable(true);      
     newNode.setHasChild(dataset.getValue("SubCount") > 0);
     newNode.CurBranID = dataset.getValue("areacode");
     newNode.setTag(dataset.getString("areacode"));      
     newNode.setIcon(BMP);
     newNode.setExpandedIcon(BMP);
     //1全选,0非全选,-1全未选
     if(dataset.getValue("Status") == 0){
      newNode.setChecked(true);
      newNode.setHalfmoon(true);
     }
     if(dataset.getValue("Status") == 1){
      newNode.setChecked(true);
     }
     else if(dataset.getValue("Status") == -1){
      newNode.setChecked(false);
     }      
     dataset.moveNext();   
    }
     var sel=new Array();     
 }
]]> </Event>
<Event name="onCheckStateChanged">
<![CDATA[
   var arr=tree2.getAllCheckedNodes();
   var TreeArray="";
   var TreeNames="";
   var Levels="";
   for(var i=0;i<arr.length;i++){
if(arr[i].getTag()>100 && arr[i].getLevel()>2){
TreeArray=TreeArray+","+arr[i].getTag();
TreeNames=TreeNames+arr[i].getLabel()+",";
}

   }
TreeArray=TreeArray.substr(1,TreeArray.length); datasetItemRateD.appendRecord();
datasetItemRateD.setValue("names",TreeNames);

return true;
]]>
</Event>


</Events>
</Control>
树1

<Control id="tree1" type="Tree">
<Events>
<Event name="beforeExpandNode">
<![CDATA[
var dataset=BranDataset;
if (node.children().getLength()>0) return;
var ParentBranID = '%{#session.CheckIn.BranID}';
var BMP = "../../images/share.gif";
dataset.parameters().clear();
if (node.getLevel() != 0)
{
ParentBranID = node.CurBranID;
BMP = "../../images/node.gif";
dataset.parameters().setValue("PBranID", ParentBranID,"int");
} else {
dataset.parameters().setValue("BranID", ParentBranID,"int");
}
BranDataset.parameters().setValue("DocID",-1);
dataset.flushData(); 
while (!dataset.isLast())
   {
     var label = dataset.getString("Bran");
     var newNode = tree.addNode(node, label);
     newNode.setCheckable(true);      
     newNode.setHasChild(dataset.getValue("SubCount") > 0);
     newNode.CurBranID = dataset.getValue("BranID");
     newNode.setTag(dataset.getString("BranCode"));      
     newNode.setIcon(BMP);
     newNode.setExpandedIcon(BMP);
     //1全选,0非全选,-1全未选
     if(dataset.getValue("Status") == 0){
      newNode.setChecked(true);
      newNode.setHalfmoon(true);
     }
     if(dataset.getValue("Status") == 1){
      newNode.setChecked(true);
     }
     else if(dataset.getValue("Status") == -1){
      newNode.setChecked(false);
     }      
     dataset.moveNext();
     }
     var sel=new Array();
]]> </Event>
<Event name="onCheckStateChanged">
<![CDATA[
   var arr=tree1.getAllCheckedNodes();
   var TreeArray="";
   var TreeNames="";
   for(var i=0;i<arr.length;i++){
if(arr[i].getTag()>100){
TreeArray=TreeArray+","+arr[i].getTag();
TreeNames=TreeNames+arr[i].getLabel()+",";
}
   }
TreeArray=TreeArray.substr(1,TreeArray.length);
datasetItemRateD.appendRecord();
datasetItemRateD.setValue("brans",TreeArray);
datasetItemRateD.setValue("names",TreeNames);
return true;
]]>
</Event>
</Events>
</Control>