龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

ASP.NET实现树型菜单(简单代码)结合js

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
/// summary /// 绑定主页列表 /// /summary protected void treeBind() { SqlConnection conn = SqlHelper.dbconn(); try { conn.Open(); DataTable dt = SqlHelper.ExecuteDataTable(conn, "select * from DyjGroup"); string _class = string.Empty;

    /// <summary>
    /// 绑定主页列表
    /// </summary>
    protected void treeBind()
    {
        SqlConnection conn = SqlHelper.dbconn();
        try
        {
            conn.Open();
            DataTable dt = SqlHelper.ExecuteDataTable(conn, "select * from DyjGroup");
            string _class = string.Empty;
            _class = "<ul>";
            _class += this.Tree(dt, 0);
            _class += "</ul>";
            show.Text = _class;  //显示到前台

            _TreeList = "";


        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
        finally
        {
            conn.Close();
        }
    }

//主要功能

    /// <summary>
    ///
    /// </summary>
    /// <param name="dt">datatable</param>
    /// <param name="_gid">父id</param>
    /// <returns></returns>
    protected string Tree(DataTable dt, int _gid)
    {
        string _moveTree = string.Empty;
        string _AddPenson = string.Empty;
        string _NextLink = string.Empty;
        string _toGroupName = string.Empty;
        string _LinkGroupName = string.Empty;
        string _Grights = string.Empty;
        int _togid = 0;
        int _tolayer = 0;


        DataRow[] _TreeDr = dt.Select("[parent]=" + _gid);
        for (int i = 0; i < _TreeDr.Length; i++)
        {
            _togid = (int)_TreeDr[i]["GroupId"];
            _toGroupName = _TreeDr[i]["GroupName"].ToString();
            _tolayer = (int)_TreeDr[i]["layer"];   //下一层
            //_NextLink = " <a href=?act=add&gid=" + _togid + "&layer=" + (_tolayer + 1) + " target=main><img src=../style/imagesIco/addgroup.gif align='absmiddle' alt='添加子组别' border=0></a>";
            if (function.getSession("jobname") == "管理员")
            {
                _AddPenson = "<a href=AddPenson.aspx?gid=" + _togid + " title='在此组别增加员工' target=main><img src=../style/imagesIco/penson.gif align='absmiddle' alt='在此组别增加员工' border=0></a>";
                _NextLink = " <a href=?act=add&gid=" + _togid + "&layer=" + (_tolayer + 1) + " target=main><img src=../style/imagesIco/addgroup.gif align='absmiddle' alt='添加子组别' border=0></a>";
                _Grights = "<a href=RightsSet.aspx?style=group&pid=" + _togid + " title='组别权限设置' target=main><img src=../style/imagesIco/Rights.gif align='absmiddle' alt='组别权限设置' border=0></a>";
            }
            _LinkGroupName = "<a href='PensonList.aspx?act=group&GroupId=" + _togid + "' target=main>" + _toGroupName + "</a>";
           
            if (Convert.ToInt32(_TreeDr[i]["layer"]) != 1)
            {
               // _moveTree = " <a href=MoveCrmclass.aspx?gid=" + _togid + " title='移动组别'><img src=../style/imagesIco/move.gif align='absmiddle' border=0></a>";//移动组别
            }

            if (_tolayer == 1)
            {
                _TreeList += "<li class='Opened'>" + _LinkGroupName + _NextLink + " " + _moveTree + " " + _AddPenson + _Grights;
                _TreeList += "<ul>";
                Tree(dt, _togid);       //
                _TreeList += "</ul></li>\n";
            }
            else
            {
                //是否还有子节点
                if (dt.Select("[parent]=" + _togid).Length > 0)
                {
                    _TreeList += "\t<li>" + _LinkGroupName + _NextLink + " " + _moveTree + " " + _AddPenson + _Grights + "\n\t\t<ul>\n";
                    Tree(dt, _togid);//
                    _TreeList += "</ul>\n</li>\n";
                }
                else
                {
                    _TreeList += "<li>" + _LinkGroupName + _NextLink + " " + _moveTree + " " + _AddPenson + _Grights + "</li>\n";
                }

            }
        }
        return _TreeList;
    }

精彩图集

赞助商链接