没什么分,但有个问题。能帮忙吗?
private void CreateTree(int belong, Microsoft.Web.UI.WebControls.TreeNode rootnode)
{
DataSet ds = new DataSet();
OleDbConnection conn=(new Data.DbAccess()).DbConn();
OleDbDataAdapter oda=new OleDbDataAdapter( "select * from gaoxinqi where ParentNode= "+belong,conn);
oda.Fill(ds);
foreach(DataRow dr in ds.Tables[0].Rows)
{
Microsoft.Web.UI.WebControls.TreeNode treenode = new Microsoft.Web.UI.WebControls.TreeNode();
treenode.Text = dr[ "NodeName "].ToString().Trim();
treenode.Expanded = true;
treenode.NavigateUrl= "Display.aspx?uid= "+dr[ "Id "].ToString();
treenode.Target= "main ";
rootnode.Nodes.Add(treenode);
int id = int.Parse(dr[ "Id "].ToString().Trim());
CreateTree(id, treenode);
}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Microsoft.Web.UI.WebControls.TreeNode rootnode = new Microsoft.Web.UI.WebControls.TreeNode();
rootnode.Expanded = true;
rootnode.Text= "公司信息 ";
rootnode.NavigateUrl= "Display.aspx?uid=0 ";
rootnode.Target= "main ";
TreeView1.Nodes.Add(rootnode);
CreateTree(0, rootnode);
}
怎么样实现当有下一级结点时,单击它时它展开,不链接。当没有下一级结点时就链接。
数据库结构是这样的(简化)
Id NodeName ParentNode
1 董事办 0
2 总经办 0
3 制造部 0
4 工程部 3
5 SMT 3
------解决方案--------------------在结点中加标志.
当单击时判断。
------解决方案--------------------你应该这样想
由2各种东西 1格式树枝 另一个事叶子
树枝包含叶子不能连接 叶子可以连接但不能有下级叶子
所以你添加note的时候就要区分
如果有下级或者将来可能有 就说明这是一个树枝 那么不给他设置NavigateUrl属性 顺便 Value=0 没有NavigateUrl 就不会连接了
如果没有下级 就设置 NavigateUrl属性 顺便 Value=1
然后
Protected Sub TreeView1_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.SelectedNodeChanged
If Me.TreeView1.SelectedNode.Value > 0 Then
Me.TreeView1.SelectedNode.ToggleExpandState()
End If
End Sub
这样就可以区分 展开和连接了
按照你的表结构 部门就是 树枝 员工就是叶子