asp.net1.0 TreeView
var OnInit;
var OnNodeChecked;

<!-- 这是注释 -->
function initchecknode(TreeView1)
{
//获得需要初始化选择状态的节点的字符串.
var selectedNodes = document.getElementById("corpList").value;
var arrayNodes = new Array();
arrayNodes = selectedNodes.split(",");
var AllRootNode=new Array();
AllRootNode=document.getElementById(TreeView1).getChildren();
//初始化选择的节点
findAndCheckedNodes(AllRootNode, arrayNodes, 1);
}
function findAndCheckedNodes(NodeArray, nodeDatas, level)
{
if(parseInt(NodeArray.length)==0)
{
return;
}
else
{
for(var i=0;i<parseInt(NodeArray.length);i++)
{
var cNode,nodeData,nodeCheckBox;
cNode=NodeArray[i];
////如果该节点在nodeDatas里则初始化checked = true;
nodeData = cNode.getAttribute("NodeData");
nodeCheckBox = cNode.getAttribute("CheckBox");
if (nodeCheckBox)
for(var j=0;j<nodeDatas.length;j++)
{
if(nodeDatas[j] == nodeData)
{
cNode.setAttribute("checked","true");
//alert(nodeData);
break;
}
}
//如果有子节点,则继续递归
if(parseInt(cNode.getChildren().length)!=0)
findAndCheckedNodes(cNode.getChildren(), nodeDatas, level + 1);
}
}
}
function tree_oncheck(tree)
{
var node=tree.getTreeNode(tree.clickedNodeIndex);
var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked");
//alert(Pchecked);
setcheck(node,Pchecked);
setParent(node,Pchecked);//如果是选择那么选择其父接点.
//alert(OnInit);
if (OnInit)
{
OnInit();
}
FindCheckedFromNode(tree, 1);
}
function FindCheckedFromNode(node, level)
{
var i = 0;
var nodes = new Array();
nodes = node.getChildren();
for (i = 0; i < nodes.length; i++)
{
var cNode;
cNode=nodes[i];
if (cNode.getAttribute("checked"))
AddChecked(cNode);
//else
// AddUnChecked(cNode);
if (parseInt(cNode.getChildren().length) != 0 )
{
FindCheckedFromNode(cNode, level + 1);
}
}
}
function AddChecked(node)
{
if (OnNodeChecked)
OnNodeChecked(node);
}
function setcheck(node,Pc)
{
var i;
var ChildNode=new Array();
ChildNode=node.getChildren();
if(parseInt(ChildNode.length)==0)
return;
else
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode,Pc);
cNode.setAttribute("checked",Pc);
}
}
}
function setParent(node,Pc)
{
var parentNode = node.getParent();
if(parentNode)
{
var parentNodeFather = parentNode.getParent();
if(parentNodeFather)
{
setParent(parentNode,Pc);
}
//parentNode.setAttribute("checked",Pc);
if(Pc)
{
parentNode.setAttribute("checked",Pc);
}
else
{
checkBrother(parentNode,Pc,node.getAttribute("NodeData"))
}
}
}
function checkBrother(parentNode,Pc,nodeData)
{
var childNodes = new Array();
childNodes = parentNode.getChildren();
if(childNodes.length >0)
{
var bChecked = true;
for(var i=0;i<childNodes.length;i++)
{
if(childNodes[i].getAttribute("checked") == true && childNodes[i].getAttribute("NodeData") != nodeData)
{
//alert(i+childNodes[i].getAttribute("Text"));
bChecked = false;
break;
}
}
if(bChecked)
{
parentNode.setAttribute("checked",Pc);
}
else
{
//所有父结点选择
setParent(parentNode,!Pc)
}
}
else
{
parentNode.setAttribute("checked",Pc);
}
};


CS:
private void buildPrimaryTree()
{
TreeView1.Attributes.Clear();
TreeView1.Attributes.Add("oncheck", "tree_oncheck(this)");
TreeNode currNode = new TreeNode();
currNode.Text = "全县市";
currNode.Expanded = true;
currNode.CheckBox = true;
currNode.NodeData = "-1";
TreeNode childNode;
TreeView1.Nodes.Add(currNode);
DataTable dtCountry = new Comm().GetEveryCounty();
string strCorpList = "-1,";
foreach (DataRow dr in dtCountry.Rows)
{
childNode = new TreeNode();
childNode.Text = dr["corpName"].ToString().Trim();
childNode.NodeData = dr["corpCode"].ToString().Trim();
childNode.CheckBox = true;
//childNode.Checked = true;
currNode.Nodes.Add(childNode);
strCorpList += dr["corpCode"].ToString().Trim() + ",";
}
this.corpList.Value = strCorpList;
}function fnDoInit()
{
strCorpList = "";
document.getElementById("corpList").value = strCorpList;
}
function fnDoNodeChecked(cNode)
{
var nodeData = cNode.getAttribute("NodeData");
strCorpList += nodeData + "," ;
//alert(strCorpList);
document.getElementById("corpList").value = strCorpList;
}
var strCorpList = "";
OnInit = fnDoInit;
OnNodeChecked = fnDoNodeChecked;
</script>
</HEAD>
<body onload=" BodyOnLoad();initchecknode('TreeView1')">
相关函数和操作:
var tnode = tree.getNodeFromIndex(tree.selectedNodeIndex);
var cNode = tree.getTreeNode(tree.clickedNodeIndex);
var nodeTarget = cNode.getAttribute("Target");
var nodeData = cNode.getAttribute("NodeData");
var nodeExpanded = cNode.getAttribute("Expanded");
var childNodes = cNode.getChildren();
使视图定位到选中的节点
var tree = document.getElementById("TreeView1");
var tnode = tree.getNodeFromIndex(tree.selectedNodeIndex);
var node = tnode.subtree.all.item("_tntext", 0);
node.scrollIntoView(true);


浙公网安备 33010602011771号