public ListGridSubItemCollection(ListGridItem lgi) : base(lgi) { }
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); } }
public ListGridGroupCollection(ListGridItem lgi) : base(lgi) { }