/// <summary> /// 构造分组 /// </summary> /// <param name="p_rows"></param> /// <returns></returns> GroupDataList BuildGroups(IList p_rows) { var groupRows = new GroupDataList(); PropertyInfo pi = null; if (!(_data is Table)) { // 分组属性 pi = p_rows[0].GetType().GetProperty(_owner.GroupName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); if (pi == null) { return(groupRows); } } GroupData <object> group; string name; foreach (object row in p_rows) { if (pi == null) { // Row name = ((Row)row).Str(_owner.GroupName); } else { // 普通对象 object obj = pi.GetValue(row); name = (obj == null) ? "" : obj.ToString(); } if (groupRows.Contains(name)) { group = groupRows[name]; } else { group = new GroupData <object>(); group.Title = name; groupRows.Add(group); } group.Add(row); } return(groupRows); }