コード例 #1
0
        public string GetRoleTree(int activityId)
        {
            List <CommonAttribute> selectedRoleList = null;

            if (activityId > 0)
            {
                selectedRoleList = service.GetDataList("t.*", "inner join OA_ACTIVITY_ROLE ar on ar.roleid=t.id", "and ar.activityid=" + activityId);
            }
            List <CommonAttribute> roleList = service.GetDataList("t.*", "", "");

            Models.Tree root = new Models.Tree();
            root.id           = "0";
            root.text         = "所有角色";
            root.state        = new Models.State();
            root.state.opened = true;
            List <Models.Tree> children = new List <Models.Tree>();

            foreach (CommonAttribute role in roleList)
            {
                Models.Tree child = new Models.Tree();
                child.id   = role.Id.ToString();
                child.text = role.Name.ToString();
                if (selectedRoleList != null && selectedRoleList.Exists(r => r.Id == role.Id))
                {
                    child.state          = new Models.State();
                    child.state.selected = true;
                }
                children.Add(child);
            }
            root.children = children;
            return(Newtonsoft.Json.JsonConvert.SerializeObject(root));
        }
コード例 #2
0
        private TreeNode CreateTreeView(Models.Tree _acc)
        {
            if (_acc == null)
            {
                return(null);
            }

            TreeNode tn = new TreeNode();

            tn.Text           = _acc.Name;
            tn.Tag            = _acc;
            _acc.ModifyStauts = 0;

            if (_acc.Child == null || _acc.Child.Count == 0)
            {
                return(tn);
            }

            foreach (var a in _acc.Child)
            {
                tn.Nodes.Add(CreateTreeView(a));
            }

            return(tn);
        }
コード例 #3
0
        public string GetUserTree(int roleId)
        {
            List <CommonAttribute> selectedUserList = null;

            if (roleId > 0)
            {
                selectedUserList = service.GetDataList("t.*", "inner join oa_user_role ur on ur.userid=t.id", "and ur.roleid=" + roleId);
            }
            List <CommonAttribute> userList = service.GetDataList("t.*", "", "");

            Models.Tree root = new Models.Tree();
            root.id           = "0";
            root.text         = "所有用户";
            root.state        = new Models.State();
            root.state.opened = true;
            List <Models.Tree> children = new List <Models.Tree>();

            foreach (CommonAttribute user in userList)
            {
                Models.Tree child = new Models.Tree();
                child.id   = user.Id.ToString();
                child.text = user.Name.ToString();
                if (selectedUserList != null && selectedUserList.Exists(u => u.Id == user.Id))
                {
                    child.state          = new Models.State();
                    child.state.selected = true;
                }
                children.Add(child);
            }
            root.children = children;
            return(Newtonsoft.Json.JsonConvert.SerializeObject(root));
        }
コード例 #4
0
        private void NewAccount(TreeNode node, Models.Tree t)
        {
            TreeNode tn = new TreeNode();

            tn.Text = t.Name;

            if (t.GetType() == typeof(Models.Accounts))
            {
                tn.Tag = new Models.Accounts();//Activator.CreateInstance(t.GetType());//根据t的类型创建实例
            }
            else
            {
                tn.Tag = new Models.ExpenseAccounts();
            }

            ((Models.Accounts)tn.Tag).ModifyStauts = 2; //new
            ((Models.Accounts)tn.Tag).Name         = t.Name;
            ((Models.Accounts)tn.Tag).AccountName  = t.Name;

            if (node != null)
            {
                //add in a node
                node.Nodes.Add(tn);
                if (node.Tag != null)
                {
                    var a = (Models.Tree)node.Tag;
                    t.Level = a.Level + 1;
                }

                var parentNode = (Models.Accounts)node.Tag;
                if (parentNode.Child == null)
                {
                    parentNode.Child = new List <Models.Tree>();
                }
                parentNode.Child.Add((Models.Accounts)tn.Tag);

                ((Models.Accounts)tn.Tag).Parent = parentNode;

                if (parentNode.ModifyStauts != 2) //new
                {
                    ModifyAccount.Add((Models.Accounts)tn.Tag);
                }
            }
            else
            {
                treeView1.Nodes.Add(tn);
                t.Level = 1;

                ModifyAccount.Add((Models.Accounts)tn.Tag);
            }

            this.treeView1.SelectedNode = tn;
            this.treeView1.LabelEdit    = true;
            if (this.treeView1.SelectedNode.IsEditing == false)
            {
                this.treeView1.SelectedNode.BeginEdit();
            }
        }
コード例 #5
0
        private void DelAccount_ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var m = ((ToolStripMenuItem)sender).GetCurrentParent();

            if (m != null)
            {
                var info = treeView1.HitTest(treeView1.PointToClient(m.PointToScreen(new Point(0, 0))));
                treeView1.Nodes.Remove(info.Node);


                Models.Tree t = (Models.Tree)info.Node.Tag;
                t.ModifyStauts = 3; //delete
                ModifyAccount.Add(t);
            }
        }
コード例 #6
0
ファイル: TreeGrid.cs プロジェクト: Efrik/Progress2
 public TreeGrid(int n)
 {
     for (int m = 0; m < n + 3; m++)
     {
         ColumnDefinition column = new ColumnDefinition();
         this.ColumnDefinitions.Add(column);
         RowDefinition row = new RowDefinition();
         this.RowDefinitions.Add(row);
     }
     for (int m = 0; m < n + 3; m++)
     {
         for (int l = 0; l < n + 3; l++)
         {
             Tree newTree = new Models.Tree(m, l);
             this.Children.Add(newTree);
         }
     }
 }
コード例 #7
0
        private void GetAccountData(Models.Tree t)
        {
            if (t != null)
            {
                if (t.ModifyStauts != 0) //modify,new,delete
                {
                    var val = ModifyAccount.Where(x => x.Id == t.Id).FirstOrDefault();

                    if (val == null)
                    {
                        ModifyAccount.Add(t);
                    }
                    else
                    {
                        val = t;
                    }
                }
            }
        }
コード例 #8
0
        private void DeleteData(DbSet <Models.Tree> dbset, Models.Tree t)
        {
            if (t == null)
            {
                return;
            }
            else
            {
                if (t.Child == null || t.Child.Count == 0)
                {
                    dbset.Attach(t);
                    dbset.Remove(t);

                    // t = null;
                }
                else
                {
                    foreach (var c in t.Child)
                    {
                        DeleteData(dbset, c);
                    }
                }
            }
        }