62,041
社区成员
发帖
与我相关
我的任务
分享
private void InitTree(TreeNodeCollection Nds, string pid)
{
//将所有的节点检索出来
ds = DbHelperOleDb.Query(strSql.ToString());
DataView tmpDV = ds.Tables[0].DefaultView;
//过滤出当前节点的所有子节点
tmpDV.RowFilter = "HigherID = '" + pid.ToString() + "'";
ContractNode tmp;
foreach (DataRowView drv in tmpDV)
{
if (tmpDV.Count != 0)//当前节点有子节点
{
tmp = new ContractNode();
tmp.Text = drv["ContractName"].ToString().Trim();
tmp.ID = drv["ID"].ToString().Trim();
tmp.Length = Convert.ToInt32(drv["RankID"].ToString().Trim());
tmp.ImageIndex = 1;
Nds.Add(tmp);
//递归调用,获得当前节点的下一级子节点
InitTree(tmp.Nodes, drv["ID"].ToString().Trim());
}
}
}
/// <summary>
/// 初始化树
/// </summary>
private void InitTreeview()
{
this.tvData.Nodes.Clear();
TreeNode tn = new TreeNode();
string id = "0";
tn.Text = "测试1";
tn.Value = id;
tn.NavigateUrl = "#";//tn.NavigateUrl = "";等于#不触发事件,等于"",可以触发像SelectedNodeChanged事件
tvData.Nodes.Add(tn);
addTreeNode(tn, dt);
}
//递归初始树
private void addTreeNode(TreeNode tnParent, DataTable dtTreeNode)
{
for (int i = 0; i < dtTreeNode.Rows.Count; i++)
{
TreeNode tn = new TreeNode();
string id = dtTreeNode.Rows[i]["Id"].ToString();
tn.Text = dtTreeNode.Rows[i]["Name"].ToString();//如果需要添加JS事件,可以通过TEXT值来实现,如:tn.text="<span onclick='close();'>name</span>"
tn.Value = id;
tn.NavigateUrl = "";
//tn.ShowCheckBox = true;
tn.NavigateUrl = "#";//tn.NavigateUrl = "";等于#不触发事件,等于"",可以触发像SelectedNodeChanged事件
tnParent.ChildNodes.Add(tn);
addTreeNode(tn, dt);
}
}