function getActsFromMileStone(milestoneId){
var preId = getPrevNodeIdByLevel(milestoneId,-1);
var preData = getData(preId);
var activityAttr = preData['activityAttr'];
var activityName = preData['activityName'];
var actsArray = new Array();
actsArray.push(activityName);
while(activityAttr != '_milestone'){
var currentData = getData(milestoneId);
milestoneId = preId;
preId = getPrevNodeIdByLevel(preId,-1);
preData = getData(preId);
activityAttr = preData['activityAttr'];
activityName = preData['activityName'];
if(activityAttr == '_milestone_b'){
activityName = preData['activityName'];
break;
} else if(activityAttr == null || activityAttr == 'undefined'){
activityName = currentData['activityName'];
}
actsArray.push(activityName);
}
return actsArray.join(",");
}
// 注意此方法中,一定要先取到当前节点,否则容易形成死循环,在jsp中,用var acts = treeGrid.getActsFromMileStone(data.activityID);
act = acts.split(",");
for(var i=0; i<act.length; i++){
$("<option value='"+(i+1)+"'>"+act[i]+"</option>").appendTo("#startActivity");
},来往select中,动态增加option
也可用以下方法:
var selected = data.startActivity;
for(var i=act.length-1; i>=0; i--){
var str = act[i].split(":");
$("<option>",{val:str[0],text:str[1]}).appendTo("#startActivity");
}
$('#startActivity').attr("value",selected);