Example #1
0
    static private void InitSiteNode(XmlNode siteNode)
    {
        foreach (XmlNode subNode in siteNode.ChildNodes)
        {
            if (subNode.Name != "siteMapNode")
            {
                continue;                                //只处理siteMapNode结点
            }
            string url     = MyXml.GetAttributeValue(subNode, "url");
            string urlflag = ParsePageFlag(url);
            MyXml.AddAttribute(subNode, "pageflag", urlflag);
            InitSiteNode(subNode);

            //不同子菜单项进行特殊处理
            string title = MyXml.GetAttributeValue(subNode, "title");
            switch (title)
            {
            default: break;
            }
        }
    }
Example #2
0
    /// <summary>
    /// 设置页面模块信息
    /// 本函数提供通用计算方式
    /// 若有特殊情况,需要更改菜单项索信息,可在相关页面中进行重载
    /// </summary>
    protected virtual void InitModuleInfo()
    {
        string typeName = this.GetType().FullName;

        if (!AppInfo.htModuleInfo.Contains(typeName))
        {
            #region 检查对应的节点

            string  strUrl   = Request.Url.ToString();
            string  urlflag0 = AppInfo.ParsePageFlag(strUrl);
            XmlNode rootNode = AppInfo.xmlSiteMap.SelectSingleNode("siteMap");
            string  urlflag1 = "";
            int     idx1     = 0;
            int     idx2     = -1;
            int     idx3     = -1;
            for (int i = 0; i < rootNode.ChildNodes.Count; i++)
            {
                for (int j = 0; j < rootNode.ChildNodes[i].ChildNodes.Count; j++)
                {
                    XmlNode node1 = rootNode.ChildNodes[i].ChildNodes[j];
                    urlflag1 = MyXml.GetAttributeValue(node1, "pageflag");
                    if (urlflag1 == urlflag0)
                    {
                        idx1 = i;
                        idx2 = j;
                        break;
                    }
                    for (int k = 0; k < rootNode.ChildNodes[i].ChildNodes[j].ChildNodes.Count; k++)
                    {
                        XmlNode node2 = node1.ChildNodes[k];
                        urlflag1 = MyXml.GetAttributeValue(node2, "pageflag");
                        if (urlflag1 == urlflag0)
                        {
                            idx1 = i;
                            idx2 = j;
                            idx3 = k;
                            break;
                        }
                    }
                }
            }

            XmlNode mNode = rootNode.ChildNodes[idx1];
            if (idx2 > -1)
            {
                mNode = mNode.ChildNodes[idx2];
            }
            if (idx3 > -1)
            {
                mNode = mNode.ChildNodes[idx3];
            }

            #endregion

            #region 从结点中解析模块信息

            ModuleInfo m = new ModuleInfo();
            m.PageFlag   = urlflag0;
            m.ModuleName = MyXml.GetAttributeValue(mNode, "title");
            m.ModuleDesc = MyXml.GetAttributeValue(mNode, "description");
            m.idxMenu1   = idx1;
            m.idxMenu2   = idx2;
            m.idxMenu3   = (idx3 > -1) ? 0 : -1;

            AppInfo.htModuleInfo.Add(typeName, m);

            #endregion
        }

        this.mModuleInfo = (ModuleInfo)AppInfo.htModuleInfo[typeName];
    }