/// <summary></summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public string GetDynamicTreeView(XmlDocument doc)
        {
            // 必填字段
            string tree     = XmlHelper.Fetch("tree", doc);
            string parentId = XmlHelper.Fetch("parentId", doc);

            // 附加属性
            string treeViewId             = XmlHelper.Fetch("treeViewId", doc);
            string treeViewName           = XmlHelper.Fetch("treeViewName", doc);
            string treeViewRootTreeNodeId = XmlHelper.Fetch("treeViewRootTreeNodeId", doc);

            // 类别索引前缀
            string prefixCategoryIndex = XmlHelper.Fetch("prefixCategoryIndex", doc);

            string url = XmlHelper.Fetch("url", doc);

            // 树形控件默认根节点标识为0, 需要特殊处理.
            parentId = (string.IsNullOrEmpty(parentId) || parentId == "0") ? treeViewRootTreeNodeId : parentId;

            StringBuilder outString = new StringBuilder();

            ICategoryIndex index = this.service.FetchCategoryIndex(KernelContext.Current.User.Id, prefixCategoryIndex);

            outString.Append("{\"ajaxStorage\":");
            outString.Append("{\"tree\":\"" + tree + "\",");
            outString.Append("\"parentId\":\"" + parentId + "\",");
            outString.Append("childNodes:[");

            outString.Append(this.GetDynamicTreeChildNodesView(treeViewRootTreeNodeId, url, index));

            outString.Append("]},\"message\":{\"returnCode\":0,\"value\":\"查询成功.\"}}");

            return(outString.ToString());
        }
Ejemplo n.º 2
0
        /// <summary></summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public string GetDynamicTreeView(XmlDocument doc)
        {
            // 必填字段
            string tree     = XmlHelper.Fetch("tree", doc);
            string parentId = XmlHelper.Fetch("parentId", doc);

            // 附加属性
            string treeViewId             = XmlHelper.Fetch("treeViewId", doc);
            string treeViewName           = XmlHelper.Fetch("treeViewName", doc);
            string treeViewRootTreeNodeId = XmlHelper.Fetch("treeViewRootTreeNodeId", doc);

            string url        = XmlHelper.Fetch("url", doc);
            string isCategory = XmlHelper.Fetch("isCategory", doc);
            string isStatus   = XmlHelper.Fetch("isStatus", doc);

            string applicationTag = XmlHelper.Fetch("applicationTag", doc);

            // 树形控件默认根节点标识为0, 需要特殊处理.
            parentId = (string.IsNullOrEmpty(parentId) || parentId == "0") ? treeViewRootTreeNodeId : parentId;

            StringBuilder outString = new StringBuilder();

            ICategoryIndex index = service.FetchCategoryIndex(isStatus);

            outString.Append("{\"data\":");
            outString.Append("{\"tree\":\"" + tree + "\",");
            outString.Append("\"parentId\":\"" + parentId + "\",");
            outString.Append("childNodes:[");

            outString.Append(GetDynamicTreeChildNodesView(treeViewRootTreeNodeId, url, index, isCategory));

            outString.Append("]},\"message\":{\"returnCode\":0,\"value\":\"查询成功.\"}}");

            return(outString.ToString());
        }
Ejemplo n.º 3
0
        public TextCategoryIndex(ICategoryIndex parent, string index)
            : this()
        {
            if (parent != null)
            {
                this.m_Parnet = parent;
            }

            this.Load(index);
        }
Ejemplo n.º 4
0
        private void Load(string index)
        {
            // 去除空白信息
            if (index != null)
            {
                index = index.Trim();
            }

            if (string.IsNullOrEmpty(index))
            {
                return;
            }

            string[] keys = index.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);

            if (keys.Length > 0)
            {
                this.Text = keys[0];

                this.Value = keys[0];
            }

            //
            // 子节点处理
            //

            if (keys.Length > 1)
            {
                ICategoryIndex target = this;

                for (int x = 1; x < keys.Length; x++)
                {
                    bool isExit = false;

                    IList <ICategoryIndex> nodes = target.ChildNodes;

                    for (int y = 0; y < nodes.Count; y++)
                    {
                        if (keys[x] == nodes[y].Value)
                        {
                            isExit = true;
                            target = nodes[y];
                            break;
                        }
                    }

                    if (!isExit)
                    {
                        target.LoadChildNode(new TextCategoryIndex(target, keys[x]));

                        target = target.ChildNodes[target.ChildNodes.Count - 1];
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public void LoadChildNode(ICategoryIndex node)
        {
            bool isExist = false;

            foreach (ICategoryIndex index in this.ChildNodes)
            {
                if (node.Value == index.Value)
                {
                    isExist = true;
                    index.LoadChildNodes(node.ChildNodes);

                    break;
                }
            }

            if (!isExist)
            {
                this.ChildNodes.Add(node);
            }
        }
        public void TestWrite()
        {
            CategoryIndexWriter writer = new CategoryIndexWriter("选择类别");

            writer.Read("一级类别01\\二级类别01\\三级类别01");
            writer.Read("一级类别01\\二级类别02\\三级类别02");
            writer.Read("一级类别01\\二级类别03\\三级类别03");
            writer.Read("一级类别02\\二级类别01\\三级类别01");
            writer.Read("一级类别02\\二级类别02\\三级类别02");
            writer.Read("一级类别02\\二级类别03\\三级类别03");
            //writer.Read("11\\113\\123");
            //writer.Read("11\\11\\11");
            //writer.Read("11\\1223\\122");
            //writer.Read("122\\12234");
            writer.Read("22\\12\\2345");

            ICategoryIndex index = writer.Write();

            Assert.IsNotNull(index);
        }
Ejemplo n.º 7
0
 public TextCategoryIndex(ICategoryIndex parent)
     : this(parent, null)
 {
 }
        /// <summary></summary>
        /// <param name="treeViewRootTreeNodeId"></param>
        /// <param name="url"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        private string GetDynamicTreeChildNodesView(string treeViewRootTreeNodeId, string url, ICategoryIndex index)
        {
            StringBuilder outString = new StringBuilder();

            foreach (ICategoryIndex item in index.ChildNodes)
            {
                outString.Append("{");
                outString.Append("\"id\":\"" + item.Value + "\",");
                outString.Append("\"parentId\":\"" + StringHelper.ToSafeJson((item.Parent.Value == treeViewRootTreeNodeId) ? "0" : item.Parent.Value) + "\",");
                outString.Append("\"name\":\"" + StringHelper.ToSafeJson(item.Text) + "\",");
                outString.Append("\"url\":\"" + StringHelper.ToSafeJson(url.Replace("{treeNodeId}", item.Value).Replace("{treeNodeName}", item.Text)) + "\",");
                outString.Append("\"target\":\"_self\",");
                outString.Append("\"hasChildren\":\"" + item.HasChildren.ToString().ToLower() + "\",");
                outString.Append("\"ajaxLoading\":\"false\",");
                outString.Append("childNodes:[");
                if (item.HasChildren)
                {
                    outString.Append(GetDynamicTreeChildNodesView(treeViewRootTreeNodeId, url, item));
                }
                outString.Append("]");

                outString.Append("},");
            }

            if (outString.Length > 1 && outString.ToString().Substring(outString.Length - 1, 1) == ",")
            {
                outString = outString.Remove(outString.Length - 1, 1);
            }

            return(outString.ToString());
        }
Ejemplo n.º 9
0
 /// <summary></summary>
 /// <param name="name"></param>
 public CategoryIndexWriter(string name)
 {
     root = new TextCategoryIndex(name);
 }
Ejemplo n.º 10
0
        /// <summary></summary>
        /// <param name="treeViewRootTreeNodeId"></param>
        /// <param name="url"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public string GetDynamicTreeChildNodesView(string treeViewRootTreeNodeId, string url, ICategoryIndex index, string isCategory)
        {
            StringBuilder outString = new StringBuilder();

            foreach (ICategoryIndex item in index.ChildNodes)
            {
                outString.Append("{");
                outString.Append("\"id\":\"" + item.Value + "\",");
                outString.Append("\"parentId\":\"" + StringHelper.ToSafeJson((item.Parent.Value == treeViewRootTreeNodeId) ? "0" : item.Parent.Value) + "\",");
                outString.Append("\"name\":\"" + StringHelper.ToSafeJson(item.Text) + "\",");
                if (!item.HasChildren || isCategory == "1")
                {
                    string            categoryIndex = item.Value.Substring(5).Replace('_', '\\');
                    ForumCategoryInfo categoryInfo  = this.service.FindOneByCategoryIndex(categoryIndex);
                    outString.Append("\"url\":\"" + StringHelper.ToSafeJson(url.Replace("{treeNodeId}", categoryInfo == null ? "" : categoryInfo.Id).Replace("{treeNodeName}", item.Text).Replace("{treeNodeCategoryIndex}", categoryIndex.Replace("\\", "\\\\"))) + "\",");
                }
                outString.Append("\"target\":\"_self\",");
                outString.Append("\"hasChildren\":\"" + item.HasChildren.ToString().ToLower() + "\",");
                outString.Append("\"ajaxLoading\":\"false\",");
                outString.Append("childNodes:[");
                if (item.HasChildren)
                {
                    outString.Append(GetDynamicTreeChildNodesView(treeViewRootTreeNodeId, url, item, isCategory));
                }
                outString.Append("]");

                outString.Append("},");
            }

            if (outString.Length > 1 && outString.ToString().Substring(outString.Length - 1, 1) == ",")
            {
                outString = outString.Remove(outString.Length - 1, 1);
            }

            return(outString.ToString());
        }