? 哥哥姐姐们c#     treeview   中单击结点使其结点图片改变就像CSDN上左边的树一样 [.NET

解决方案 »

  1.   

    就是这个网页的效果http://community.csdn.net/
    谢谢
      

  2.   

    You should write xml or retrieve from database ans format it as xml then assign it to treeviewif you want to retrieve it from databaseyou can refer the followingI use this to generate menu dynamically. Hope it is useful.               string stmtModule = "SELECT MODULE_NAME,URL FROM MODULES  WHERE MODULE_NO IN "+
                        "(SELECT MODULE_NO FROM FUNCTIONS F,RIGHTS RI,ROLES R,USERS U WHERE "+
                    " U.ROLE_NO=R.ROLE_NO AND R.ROLE_NO=RI.ROLE_NO AND F.FUNCTION_NO=RI.FUNCTION_NO AND "+
                    " U.USER_NAME='"+userName+"')";                SqlDataReader drModule = SPIDDBHelper.GetDataReader(stmtModule);                int i=1;
                    if(drModule.HasRows)
                    {
                    while (drModule.Read())
                    {
                        MenuItem item = new MenuItem();
                        item.Text = drModule["Module_Name"].ToString();
                        item.NavigateUrl = drModule["URL"].ToString() + ".aspx";
                        this.Menu1.Items.Add(item);
                        string stmtFunction = "SELECT FUNCTION_NAME,URL FROM FUNCTIONS WHERE " +
                         "FUNCTION_NO IN (SELECT FUNCTION_NO FROM RIGHTS RI, ROLES R, USERS U WHERE " +
                         "U.ROLE_NO=R.ROLE_NO AND R.ROLE_NO=RI.ROLE_NO AND " +
                         " U.USER_NAME='" + userName + "') AND MODULE_NO IN " +
                         "(SELECT MODULE_NO FROM MODULES WHERE MODULE_NAME='" + item.Text + "')";
                        SqlDataReader drFunction = SPIDDBHelper.GetDataReader(stmtFunction);
                        if (drFunction.HasRows)
                        {
                            while (drFunction.Read())
                            {
                                MenuItem subItem = new MenuItem();
                                subItem.Text = drFunction["Function_Name"].ToString();
                                subItem.NavigateUrl = drFunction["URL"].ToString() + ".aspx";
                                this.Menu1.Items[i].ChildItems.Add(subItem);
                            }
                            i++;
                        }
                    }
                    }