コード例 #1
0
 public ListGridSubItemCollection(ListGridItem lgi) : base(lgi)
 {
 }
コード例 #2
0
ファイル: Grid.cs プロジェクト: dftell/WCS
        public virtual void FillListView()
        {
            List <ListGridItem> lvis = new List <ListGridItem>();

            string[] intgrids = new string[this.Columns.Count];
            string[] grparr   = null;
            if (listobj.AllowGroup && listobj.GroupBy != null && listobj.GroupBy.Trim().Length > 0)
            {
                grparr = listobj.GroupBy.Split(',');
            }

            Dictionary <string, ListViewGroup> allgroup = new Dictionary <string, ListViewGroup>();

            for (int r = 0; r < this.Items.Count; r++)
            {
                string[]   grids    = new string[this.Columns.Count];
                UpdateData currdata = this.Items[r].ToUpdateData();

                for (int i = 0; i < this.Columns.Count; i++)
                {
                    if (this.Columns[i].DataField == "")
                    {
                        continue;
                    }

                    if (this.Items[r].Items.ContainsKey(this.Columns[i].DataField))
                    {
                        this.Items[r].Items[this.Columns[i].DataField].OwnerColumn = this.Columns[i];
                        //this.Items[r].Items[this.Columns[i].DataField].text = GetValue(this.Items[r].Items[this.Columns[i].DataField].value, this.Columns[i], _frmhandle.strUid);
                        this.Items[r].Items[this.Columns[i].DataField].text = this.Columns[i].getValue(_frmhandle.strUid, currdata);
                        grids[i] = this.Items[r].Items[this.Columns[i].DataField].text;
                    }
                    if (this.Columns[i].Sum)
                    {
                        long fval = 0;
                        long.TryParse(grids[i], out fval);
                        long sumval = 0;
                        long.TryParse(intgrids[i], out sumval);
                        sumval      = sumval + fval;
                        intgrids[i] = sumval.ToString();
                    }
                }
                ListGridItem  lvi    = new ListGridItem(grids);
                List <string> strGrp = new List <string>();
                if (listobj.AllowGroup && grparr != null)
                {
                    grparr.ToList().ForEach(a => {
                        if (this.Items[r].Items.ContainsKey(a))
                        {
                            strGrp.Add(this.Items[r].Items[a].text);
                        }
                        else
                        {
                            strGrp.Add(a);
                        }
                    });
                    string name = string.Join(",", strGrp);
                    if (!allgroup.ContainsKey(name))
                    {
                        allgroup.Add(name, new ListViewGroup(name));
                    }
                    allgroup[name].Items.Add(lvi);
                }

                lvi.Tag = this.Items[r];
                lvis.Add(lvi);
            }

            listobj.Items.Clear();
            listobj.Items.AddRange(lvis.ToArray());
            if (listobj.AllowGroup && grparr != null)
            {
                listobj.Groups.AddRange(allgroup.Values.ToArray());
            }
            if (listobj.AllowSum && lvis.Count > 0)
            {
                intgrids[0] = "合计:";
                int col = 0;
                this.Columns.ForEach(a => {
                    if (a.Sum)
                    {
                        intgrids[col] = this.Items.Sum(row => {
                            float val = 0;
                            if (!row.Items.ContainsKey(a.DataField))
                            {
                                return(0);
                            }
                            float.TryParse(row.Items[a.DataField].value, out val);
                            return(val);
                        }).ToString();
                    }
                    col++;
                });
                SumListGridItem lgi = new SumListGridItem(intgrids);
                listobj.Items.Add(lgi);
            }
        }
コード例 #3
0
 public ListGridGroupCollection(ListGridItem lgi) : base(lgi)
 {
 }