Beispiel #1
0
    public List <FunctionalTree> CreateTreeStructure(int UserID)
    {
        JavaScriptSerializer  ser = new JavaScriptSerializer();
        List <FunctionalTree> NH  = new List <FunctionalTree>();

        try
        {
            DataTable dtMenu = null;

            dtMenu = objBllUser.Get_Menu_Lib_Access(UserID);
            FunctionalTree nh = new FunctionalTree();

            int       meni  = 0;
            int       child = 0;
            DataRow[] drs   = dtMenu.Select("[Parent] is null");

            foreach (DataRow dr in drs)
            {
                nh    = new FunctionalTree();
                nh.id = Convert.ToString(dr["id"]);


                nh.parent = Convert.ToString(dr["parent"]);
                nh.text   = Convert.ToString(dr["text"]);
                nh.icon   = Convert.ToString(dr["icon"]);
                nh.value  = Convert.ToString(dr["value"]);
                NH.Add(nh);

                DataRow[] drInners = dtMenu.Select("[Parent] ='" + dr["ID"].ToString() + "' ");
                if (drInners.Length != 0)
                {
                    foreach (DataRow drInner in drInners)
                    {
                        FunctionalTree nhChild = new FunctionalTree();
                        nhChild.id = Convert.ToString(drInner["id"]);


                        nhChild.parent = Convert.ToString(drInner["parent"]);
                        nhChild.text   = Convert.ToString(drInner["text"]);
                        nhChild.icon   = Convert.ToString(drInner["icon"]);
                        nhChild.value  = Convert.ToString(drInner["value"]);
                        NH.Add(nhChild);

                        string filter = "[Parent] = '" + drInner["ID"].ToString() + "'";

                        dtMenu.AcceptChanges();
                        DataRow[] drInnerLinks = dtMenu.Select(filter);

                        if (drInnerLinks.Length != 0)
                        {
                            child = 0;
                            foreach (DataRow drInnerLink in drInnerLinks)
                            {
                                FunctionalTree nhChildnodes = new FunctionalTree();
                                nhChildnodes.id = Convert.ToString(drInnerLink["id"]);


                                nhChildnodes.parent = Convert.ToString(drInnerLink["parent"]);
                                nhChildnodes.text   = Convert.ToString(drInnerLink["text"]);
                                nhChildnodes.icon   = Convert.ToString(drInnerLink["icon"]);
                                nhChildnodes.value  = Convert.ToString(drInnerLink["value"]);
                                NH.Add(nhChildnodes);
                            }
                            child++;
                        }
                        meni++;
                    }
                }
            }
        }

        catch (Exception ex)
        {
            string s = ex.Message;
        }
        return(NH);
    }