Ejemplo n.º 1
0
        private void SaveElement(XmlDocument doc, XmlElement Parent, DataTable childtable)
        {
            for (int i = 0; i < childtable.Rows.Count; i++)
            {
                int    childpkid;
                string ChsName;
                string URL;

                childpkid = (int)childtable.Rows[i]["PKID"];
                ChsName   = (string)childtable.Rows[i]["ChineseName"];
                if (childtable.Rows[i]["URL"] != null || childtable.Rows[i]["URL"].ToString() != "")
                {
                    URL = childtable.Rows[i]["URL"].ToString();
                }
                else
                {
                    URL = "";
                }
                RoleMenu checkmenu = new RoleMenu();
                checkmenu.SessionInstance = session;
                BusinessFilter checkfilter = new BusinessFilter("RoleMenu");
                checkfilter.AddFilterItem("FK_Menu", childpkid.ToString(), Operation.Equal, FilterType.NumberType, AndOr.AND);
                checkfilter.AddFilterItem("FK_Role", this.rolepkid.ToString(), Operation.Equal, FilterType.NumberType, AndOr.AND);
                checkfilter.AddFilterItem("IsValid", "1", Operation.Equal, FilterType.NumberType, AndOr.AND);
                checkmenu.AddFilter(checkfilter);
                checkmenu.Load();
                if (checkmenu.HaveRecord)
                {
                    System.Xml.XmlElement child = GlobalFacade.XDom.CreateDocumentElement(doc, "TREENODE");
                    GlobalFacade.XDom.SetNodeAttribute(doc, child, "TEXT", ChsName);
                    GlobalFacade.XDom.SetNodeAttribute(doc, child, "NODEDATA", childpkid.ToString());
                    GlobalFacade.XDom.SetNodeAttribute(doc, child, "EXPANDED", "false");
                    GlobalFacade.XDom.SetNodeAttribute(doc, child, "TARGET", "main");
                    GlobalFacade.XDom.SetNodeAttribute(doc, child, "NAVIGATEURL", URL);
                    Parent.AppendChild(child);

                    System.Data.DataTable    subchildTable;
                    BusinessObjectCollection subchild = new BusinessObjectCollection("Menu");
                    subchild.SessionInstance = session;
                    BusinessFilter filter = new BusinessFilter("Menu");
                    filter.AddFilterItem("Parent", childpkid.ToString(), Operation.Equal, FilterType.NumberType, AndOr.AND);
                    filter.AddFilterItem("IsValid", "1", Operation.Equal, FilterType.NumberType, AndOr.AND);
                    subchild.AddFilter(filter);
                    /* Andy Modify 2007-04-26 Add Order By */
                    subchild.Businessobject.OrderBy = "ORDER BY [DisplayOrder] ASC";
                    subchildTable = subchild.GetDataTable();
                    if (subchildTable.Rows.Count > 0)
                    {
                        SaveElement(doc, child, subchildTable);
                    }
                }
            }
        }