在网上看到一个问题:
----------------------------------
比如我想建一个层数是3的树
建立到第3层之后
如果用户要再建立下一层
就提示不能建立了
---------------------------------
请各位高手帮忙看一下~
----------------------------------
比如我想建一个层数是3的树
建立到第3层之后
如果用户要再建立下一层
就提示不能建立了
---------------------------------
请各位高手帮忙看一下~
if (!Page.IsPostBack)
{
//TreeView1.Nodes.Clear();
TreeNode nNode = new TreeNode("在职");
TreeNode pNode = new TreeNode("离职");
TreeView1.Nodes.Add(nNode);
TreeView1.Nodes.Add(pNode);
} }
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
if (e.Node.ChildNodes.Count == 0)
{
if (e.Node.Depth == 0)
{ tiancong_geng(e.Node); }
else if (e.Node.Depth == 1)
{ tiancong_ye(e.Node); }
/*else if (e.Node.Depth == 2)
{ tiancong_ye1(e.Node); }
else if (e.Node.Depth == 3)
{ tiancong_ye2(e.Node); }*/
}
} void tiancong_geng(TreeNode Node)
{ Socut.Reader MinCheng = new Socut.Reader("SELECT * FROM ZIYUAN order by ID asc");
while (MinCheng.Read())
{
bool KG = false;
TreeNode geng = new TreeNode(MinCheng["QUYU"].ToString());
geng.PopulateOnDemand = true;
geng.SelectAction = TreeNodeSelectAction.Expand;
int a = Node.ChildNodes.Count;
if (a > 0)
{
for (int jie = 0; jie < a; jie++)
{
if (Node.ChildNodes[jie].Text == MinCheng["QUYU"].ToString())
{ KG = true; break; }
}
if (KG == false) { Node.ChildNodes.Add(geng); }
}
else { Node.ChildNodes.Add(geng); } }
MinCheng.Close(); } void tiancong_ye(TreeNode Node)
{
Socut.Reader MinCheng = new Socut.Reader("SELECT * FROM ZIYUAN order by ID asc");
while (MinCheng.Read())
{
TreeNode geng = new TreeNode(MinCheng["JIFAN"].ToString(), "", MinCheng["JIFAN"].ToString());
geng.PopulateOnDemand = true;//false
geng.SelectAction = TreeNodeSelectAction.None; if (Node.Text == MinCheng["QUYU"].ToString())
{ Node.ChildNodes.Add(geng); } }
MinCheng.Close();
} void tiancong_ye1(TreeNode Node)
{
Socut.Reader MinCheng = new Socut.Reader("SELECT * FROM ZIYUAN");
while (MinCheng.Read())
{
TreeNode geng = new TreeNode(MinCheng["JIFAN"].ToString(), MinCheng["JIFAN"].ToString());
geng.PopulateOnDemand = false;//true
geng.SelectAction = TreeNodeSelectAction.None;
Node.ChildNodes.Add(geng);
}
MinCheng.Close(); } void tiancong_ye2(TreeNode Node)
{
Socut.Reader MinCheng = new Socut.Reader("SELECT * FROM Xian");
while (MinCheng.Read())
{
TreeNode geng = new TreeNode(MinCheng["Cheng"].ToString(), MinCheng["Ren"].ToString());
geng.PopulateOnDemand = false;
geng.SelectAction = TreeNodeSelectAction.None;
Node.ChildNodes.Add(geng);
}
MinCheng.Close(); }
其中node为当前节点,这句话的意思是点击当前节点不载入下一级节点;在做treeview异步加载时经常用到PopulateOnDemand。
谢谢,我在前台放了TreeView,通过点击节点,就可以在它下面实现添加子节点,现在可以无限的添加子节点,
怎么检查用户的输入是第三层然后给出提示呢?
{
if (e.Node.ChildNodes.Count == 0)
{
if (e.Node.Depth == 0)
{ tiancong_geng(e.Node); }
else if (e.Node.Depth == 1)
{ tiancong_ye(e.Node); }
else if (e.Node.Depth == 2)
{ tiancong_ye1(e.Node); }
else if (e.Node.Depth == 3)
{ tiancong_ye2(e.Node); }
}
}
不是?
或把你的代码贴出来看看