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>
通过勾选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>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货