Ejemplo n.º 1
0
        private string GetJsonForTreeByDataset(DataSet ds, string where, int type, string orderby)
        {
            DataTable     dt   = ds.Tables[0];
            StringBuilder json = new StringBuilder();

            json.Append("[");
            foreach (DataRow dr in dt.Rows)
            {
                BLL.T_Menu bll_menu = new BLL.T_Menu();

                json.Append("{\"id\":" + dr["id"].ToString());
                json.Append(",\"text\":\"" + dr["name"].ToString() + "\"");
                json.Append(",\"iconCls\":\"" + "" + "\"");
                json.Append(",\"pid\":\"" + dr["pid"].ToString() + "\"");
                //获取下一级
                DataSet   dsChilds = bll_menu.GetLevelListByPId(Convert.ToInt32(dr["id"].ToString()), false, where, orderby);
                DataTable dtChilds = dsChilds.Tables[0];
                //下一级含有在权限范围之内的
                if (dtChilds.Rows.Count > 0)
                {
                    //根据id获取子菜单
                    if (dtChilds != null && dtChilds.Rows.Count > 0)
                    {
                        json.Append(",\"children\":");
                        //子菜单递归拼接
                        json.Append(GetJsonForTreeByDataset(dsChilds, where, type, orderby));
                    }
                }

                json.Append("},");
            }
            if (dt.Rows.Count > 0 && json.ToString().Substring(json.Length - 1, 1) == ",")
            {
                json.Remove(json.Length - 1, 1);
            }
            json.Append("]");
            return(json.ToString());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 递归方式,获取子菜单,以json的格式
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public string GetJsonForTreeByDataset_Menu(DataSet ds, string where, int type, string oderby)
        {
            DataTable     dt   = ds.Tables[0];
            StringBuilder json = new StringBuilder();

            json.Append("[");
            foreach (DataRow dr in dt.Rows)
            {
                BLL.T_Menu bll_menu = new BLL.T_Menu();

                json.Append("{\"id\":" + dr["id"].ToString());

                json.Append(",\"text\":\"" + dr["name"].ToString() + "\"");
                json.Append(",\"_sort\":\"" + dr["_sort"].ToString() + "\"");
                json.Append(",\"isDeleted\":\"" + dr["isDeleted"].ToString() + "\"");
                json.Append(",\"icon\":\"" + "icon-man" + "\"");
                json.Append(",\"state\":\"true\"");
                json.Append(",\"url\":\"" + dr["url"].ToString() + "\"");
                json.Append(",\"description\":\"" + dr["description"].ToString() + "\"");
                json.Append(",\"pid\":\"" + dr["pid"].ToString() + "\"");
                json.Append(",\"attributes\":{\"iconCls\":\"" + "icon-man" + "\"" + ",\"url\":\"" + dr["url"].ToString() + "\"" + "}");

                //获取下一级
                DataSet   dsChilds = bll_menu.GetLevelListByPId(Convert.ToInt32(dr["id"].ToString()), false, where, oderby);
                DataTable dtChilds = dsChilds.Tables[0];
                //下一级含有在权限范围之内的
                if (dtChilds.Rows.Count > 0)
                {
                    //根据id获取子菜单
                    if (dtChilds != null && dtChilds.Rows.Count > 0)
                    {
                        json.Append(",\"children\":");
                        //子菜单递归拼接
                        json.Append(GetJsonForTreeByDataset_Menu(dsChilds, where, type, oderby));
                    }
                }
                else
                { //拼接小权限
                    List <Model.T_Privilege> list_privilege = bll_privilege.GetModelList(" 1=1 and menuId = " + Convert.ToInt32(dr["id"].ToString()));
                    if (list_privilege.Count > 0)
                    {
                        json.Append(",\"children\":");
                        json.Append("[");

                        foreach (Model.T_Privilege model in list_privilege)
                        {
                            int ids = 0;
                            ids = model.menuId + Convert.ToInt32(model.name);
                            json.Append("{\"id\":\"" + ids + "\"");
                            String privilegeName = "";
                            privilegeName = utils.Util.GetNameByPrivilegeId(model.name);
                            json.Append(",\"text\":\"" + privilegeName + "\"");
                            json.Append(",\"iconCls\":\"" + model.icon + "\"");
                            json.Append(",\"state\":\"true\"");
                            json.Append(",\"pid\":\"" + model.menuId + "\"");
                            json.Append(",\"attributes\":{\"iconCls\":\"" + model.icon + "\"" + "}},");
                        }

                        if (dt.Rows.Count > 0 && json.ToString().Substring(json.Length - 1, 1) == ",")
                        {
                            json.Remove(json.Length - 1, 1);
                        }
                        json.Append("]");
                    }
                }

                json.Append("},");
            }
            if (dt.Rows.Count > 0 && json.ToString().Substring(json.Length - 1, 1) == ",")
            {
                json.Remove(json.Length - 1, 1);
            }
            json.Append("]");
            return(json.ToString());
        }
        /// <summary>
        /// 递归方式,获取子菜单,以json的格式
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public string GetJsonForTreeByDataset_Menu(DataSet ds, string where, int type, string oderby)
        {
            DataTable dt = ds.Tables[0];
            StringBuilder json = new StringBuilder();

            json.Append("[");
            foreach (DataRow dr in dt.Rows)
            {
                BLL.T_Menu bll_menu = new BLL.T_Menu();

                json.Append("{\"id\":" + dr["id"].ToString());

                json.Append(",\"text\":\"" + dr["name"].ToString() + "\"");
                json.Append(",\"_sort\":\"" + dr["_sort"].ToString() + "\"");
                json.Append(",\"isDeleted\":\"" + dr["isDeleted"].ToString() + "\"");
                json.Append(",\"icon\":\"" + "icon-man" + "\"");
                json.Append(",\"state\":\"true\"");
                json.Append(",\"url\":\"" + dr["url"].ToString() + "\"");
                json.Append(",\"description\":\"" + dr["description"].ToString() + "\"");
                json.Append(",\"pid\":\"" + dr["pid"].ToString() + "\"");
                json.Append(",\"attributes\":{\"iconCls\":\"" + "icon-man" + "\"" + ",\"url\":\"" + dr["url"].ToString() + "\"" + "}");

                //获取下一级
                DataSet dsChilds = bll_menu.GetLevelListByPId(Convert.ToInt32(dr["id"].ToString()), false, where, oderby);
                DataTable dtChilds = dsChilds.Tables[0];
                //下一级含有在权限范围之内的
                if (dtChilds.Rows.Count > 0)
                {
                    //根据id获取子菜单
                    if (dtChilds != null && dtChilds.Rows.Count > 0)
                    {
                        json.Append(",\"children\":");
                        //子菜单递归拼接
                        json.Append(GetJsonForTreeByDataset_Menu(dsChilds, where, type, oderby));
                    }

                }
                else
                { //拼接小权限
                    List<Model.T_Privilege> list_privilege = bll_privilege.GetModelList(" 1=1 and menuId = " + Convert.ToInt32(dr["id"].ToString()));
                    if (list_privilege.Count > 0) {
                        json.Append(",\"children\":");
                        json.Append("[");

                        foreach (Model.T_Privilege model in list_privilege)
                        {
                            int ids = 0;
                            ids = model.menuId+Convert.ToInt32(model.name);
                            json.Append("{\"id\":\"" + ids + "\"");
                            String privilegeName = "";
                            privilegeName = utils.Util.GetNameByPrivilegeId(model.name);
                            json.Append(",\"text\":\""+privilegeName+"\"");
                            json.Append(",\"iconCls\":\"" + model.icon + "\"");
                            json.Append(",\"state\":\"true\"");
                            json.Append(",\"pid\":\"" + model.menuId + "\"");
                            json.Append(",\"attributes\":{\"iconCls\":\"" + model.icon + "\"" + "}},");
                        }

                        if (dt.Rows.Count > 0 && json.ToString().Substring(json.Length - 1, 1) == ",")
                        {
                            json.Remove(json.Length - 1, 1);
                        }
                        json.Append("]");
                    }

                }

                json.Append("},");

            }
            if (dt.Rows.Count > 0 && json.ToString().Substring(json.Length - 1, 1) == ",")
            {
                json.Remove(json.Length - 1, 1);
            }
            json.Append("]");
            return json.ToString();
        }
        private string GetJsonForTreeByDataset(DataSet ds, string where, int type,string orderby)
        {
            DataTable dt = ds.Tables[0];
            StringBuilder json = new StringBuilder();

            json.Append("[");
            foreach (DataRow dr in dt.Rows)
            {
                BLL.T_Menu bll_menu = new BLL.T_Menu();

                json.Append("{\"id\":" + dr["id"].ToString());
                json.Append(",\"text\":\"" + dr["name"].ToString() + "\"");
                json.Append(",\"iconCls\":\"" + "" + "\"");
                json.Append(",\"pid\":\"" + dr["pid"].ToString() + "\"");
                //获取下一级
                DataSet dsChilds = bll_menu.GetLevelListByPId(Convert.ToInt32(dr["id"].ToString()), false, where, orderby);
                DataTable dtChilds = dsChilds.Tables[0];
                //下一级含有在权限范围之内的
                if (dtChilds.Rows.Count > 0)
                {
                    //根据id获取子菜单
                    if (dtChilds != null && dtChilds.Rows.Count > 0)
                    {
                        json.Append(",\"children\":");
                        //子菜单递归拼接
                        json.Append(GetJsonForTreeByDataset(dsChilds, where, type,orderby));
                    }
                }

                json.Append("},");

            }
            if (dt.Rows.Count > 0 && json.ToString().Substring(json.Length - 1, 1) == ",")
            {
                json.Remove(json.Length - 1, 1);
            }
            json.Append("]");
            return json.ToString();
        }