コード例 #1
0
        private void InitializeTree()
        {
            List <MyParameter> para = new List <MyParameter>();

            para.Add("@Menu_Id", DbType.String, SysPage.Menu_Id, null);
            DataTable       dt_Sys_WorkSet = BaseService.Open("SystemMenu_Tree", para);
            List <Sys_Tree> sys_Trees      = EntityHelper.GetEntities <Sys_Tree>(dt_Sys_WorkSet);

            foreach (Sys_Tree sys_Tree in sys_Trees)
            {
                Control[] controls = this.Controls.Find(sys_Tree.Tree_Grid, true);
                if (controls.Length > 0)
                {
                    if (controls[0].GetType().Equals(typeof(GridControl)))
                    {
                        GridControl grid = (GridControl)controls[0];
                        DevExpress.XtraTreeList.TreeList tree = new DevExpress.XtraTreeList.TreeList();
                        tree.BeginUpdate();
                        tree.ParentFieldName = sys_Tree.Tree_Parent;
                        tree.KeyFieldName    = sys_Tree.Tree_Key;
                        //tree.PreviewFieldName
                        tree.CheckBoxFieldName = sys_Tree.Tree_Check;
                        DevExpress.XtraTreeList.Columns.TreeListColumn col = new DevExpress.XtraTreeList.Columns.TreeListColumn();
                        col.FieldName    = sys_Tree.Tree_Display;
                        col.Name         = "t_" + sys_Tree.Tree_Display;
                        col.Visible      = true;
                        col.VisibleIndex = 1;
                        tree.OptionsBehavior.Editable = false;
                        if (!sys_Tree.Tree_ReadOnly)
                        {
                            tree.DoubleClick += BindTreeEditor;
                            tree.OptionsDragAndDrop.DragNodesMode = DevExpress.XtraTreeList.DragNodesMode.Single;
                        }
                        else
                        {
                            GridView abv = (GridView)grid.MainView;
                            abv.OptionsBehavior.Editable          = false;
                            abv.OptionsBehavior.AllowAddRows      = DevExpress.Utils.DefaultBoolean.False;
                            abv.OptionsBehavior.AllowDeleteRows   = DevExpress.Utils.DefaultBoolean.False;
                            tree.OptionsDragAndDrop.DragNodesMode = DevExpress.XtraTreeList.DragNodesMode.None;
                        }
                        tree.Columns.Add(col);
                        tree.OptionsView.ShowIndicator  = false;
                        tree.OptionsView.ShowColumns    = false;
                        tree.OptionsView.ShowHorzLines  = false;
                        tree.OptionsView.ShowVertLines  = false;
                        tree.OptionsView.ShowCheckBoxes = !string.IsNullOrEmpty(sys_Tree.Tree_Check);
                        tree.Name        = "tree_" + grid.Name;
                        tree.BorderStyle = BorderStyles.NoBorder;
                        grid.Controls.Add(tree);
                        //tree.PopulateColumns();
                        tree.BringToFront();
                        tree.Dock               = DockStyle.Fill;
                        tree.GotFocus          += Control_GotFocus;
                        grid.DataSourceChanged += BindTreeDataSource;
                        tree.Visible            = !sys_Tree.Tree_Hide;
                        tree.EndUpdate();
                        //切换视图
                        Control grp = grid.Parent;
                        if (grp.GetType() == typeof(GroupControl))
                        {
                            //grp.DoubleClick += DoNothing;
                            grp.DoubleClick += delegate
                            {
                                tree.Visible = !tree.Visible;
                            };
                        }
                    }
                }
            }
        }