如何像CSDN这样点击某个结点就自动展开它下边的子结点,如果使用了NavigateUrl属性就无法自动展开,请高手指点,该怎样做

解决方案 »

  1.   

    TreeView 本来就是有你说的这个功能的呀。不是很清楚你的意思
      

  2.   

    分享一个简单的吧,至少我觉得还好了。
    前台放一个
    <asp:TreeView ID="treelist" runat="server" ExpandDepth="0" Font-Size="12px" Width="100%">
                            <LeafNodeStyle HorizontalPadding="3px" NodeSpacing="3px" />
                            <NodeStyle NodeSpacing="3px" />
                        </asp:TreeView>
    后台: protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                using (SqlConnection sqlcon = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))//数据库连接
                {
                    sqlcon.Open();
                    SqlCommand sqlcom = new SqlCommand("select * from bbs_master_table", sqlcon);
    //bbs_master_table中字段有id,title.title相当于csdn上面的.net技术,java技术等.主表
                    SqlDataReader reader = sqlcom.ExecuteReader();
                    while (reader.Read())
                    {
                        TreeNode node = new TreeNode(reader["name"].ToString().Trim(), reader["id"].ToString().Trim(), "image/folder.gif", "bbs_list_style.aspx?id=" + reader["id"].ToString().Trim() + "&name="+HttpUtility.UrlEncode(reader["name"].ToString().Trim())+"","right");
                        using (SqlConnection sqlconChild=new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
                        { 
                            sqlconChild.Open();
                            SqlCommand sqlcomchild = new SqlCommand("select * from bbs_child_table where priid=" + reader["id"].ToString().Trim() + "", sqlconChild);
                            SqlDataReader readerchild = sqlcomchild.ExecuteReader();
    //bbs_child_table 字段有id,prid(为bbs_mster_table 表中的ID),name---name相当于CSDN上面的.net技术下面的c#,j#等。
                            while (readerchild.Read())
                            {
                                TreeNode nodeChild = new TreeNode(readerchild["cname"].ToString().Trim(), readerchild["id"].ToString().Trim(), "image/child.gif", "bbs_list_content.aspx?id=" + readerchild["id"].ToString().Trim() + "&name=" + HttpUtility.UrlEncode(readerchild["cname"].ToString().Trim()) + "", "right");
                                node.ChildNodes.Add(nodeChild);  
                            }
                            readerchild.Close();
                        }
                        treelist.Nodes.Add(node);
                    }
                }
            }
        }上面只是实现的两级菜单。界面再加以美化就可以了。
      

  3.   

    点击某个结点就自动展开它下边的子结点, 他本身就可以这么做,你在检查下你的代码把,
    动态添加结点.简单,,baidu一下..
      

  4.   


    使用NavigateUrl不会影响自动展开,细心检查一下你的代码