//把数据放到Dictionary中 DataTable NewTable = new DataTable(); NewTable.Columns.Add("name", typeof(string)); NewTable.Columns.Add("company", typeof(string)); NewTable.Columns.Add("fgongkai", typeof(string)); NewTable.Columns.Add("finvite", typeof(string)); NewTable.Columns.Add("fmeeting", typeof(string)); NewTable.Columns.Add("ftotal", typeof(string)); NewTable.Columns.Add("sgongkai", typeof(string)); NewTable.Columns.Add("sinvite", typeof(string)); NewTable.Columns.Add("smeeting", typeof(string)); NewTable.Columns.Add("stotal", typeof(string)); NewTable.Columns.Add("total", typeof(string)); Dictionary<string, DataRow> DataList = new Dictionary<string, DataRow>(); DataRow Newdr; foreach (DataRow dr in dt.Rows) { if (!DataList.ContainsKey(dr["ExpertId"].ToString().Trim())) { Newdr = NewTable.NewRow(); Newdr["name"] = dr["ExpertName"]; Newdr["company"] = dr["CompanyName"]; if (dr["InMeeting"].ToString().Trim() == "1") { Newdr["fgongkai"] = DataConvert.ToInt(dr["gongkai"]); Newdr["finvite"] = DataConvert.ToInt(dr["invite"]); Newdr["fmeeting"] = DataConvert.ToInt(dr["meeting"]); Newdr["ftotal"] = DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]); Newdr["total"] = Newdr["ftotal"]; } else { Newdr["sgongkai"] = DataConvert.ToInt(dr["gongkai"]); Newdr["sinvite"] = DataConvert.ToInt(dr["invite"]); Newdr["smeeting"] = DataConvert.ToInt(dr["meeting"]); Newdr["stotal"] = DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]); Newdr["total"] = Newdr["stotal"]; } DataList.Add(dr["ExpertId"].ToString(), Newdr); } else { Newdr = DataList[dr["ExpertId"].ToString()]; if (dr["InMeeting"].ToString().Trim() == "1") { DataList[dr["ExpertId"].ToString()]["fgongkai"] = DataConvert.ToInt(dr["gongkai"]); DataList[dr["ExpertId"].ToString()]["finvite"] = DataConvert.ToInt(dr["invite"]); DataList[dr["ExpertId"].ToString()]["fmeeting"] = DataConvert.ToInt(dr["meeting"]); DataList[dr["ExpertId"].ToString()]["ftotal"] = DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]); } else { DataList[dr["ExpertId"].ToString()]["sgongkai"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["sgongkai"]) + DataConvert.ToInt(dr["gongkai"]); DataList[dr["ExpertId"].ToString()]["sinvite"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["sinvite"]) + DataConvert.ToInt(dr["invite"]); DataList[dr["ExpertId"].ToString()]["smeeting"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["smeeting"]) + DataConvert.ToInt(dr["meeting"]); DataList[dr["ExpertId"].ToString()]["stotal"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["stotal"]) + DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]); } DataList[dr["ExpertId"].ToString()]["total"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["ftotal"]) + DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["stotal"]); } } DataTable NewTable2 = new DataTable(); NewTable2 = NewTable.Clone();//复制NewTable表结构 foreach (DataRow dr in DataList.Values)//将DataList中的数据放到NewTable2中 { NewTable2.Rows.Add(dr.ItemArray); } DataView dv = NewTable2.DefaultView; dv.Sort = " total desc";//根据total排序 DataTable dt1 = dv.ToTable(); int row = 1; foreach (DataRow dr in dt1.Rows) { html.Append(@" <tr> <td class=""gray"" align=""center"" valign=""middle"">" + row + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + dr["name"] + @"</td> <td align=""left"" valign=""middle"" style=""background: #D6F1FC"">" + dr["company"] + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["fgongkai"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["finvite"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["fmeeting"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["ftotal"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["sgongkai"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["sinvite"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["smeeting"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["stotal"]) + @"</td> <td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["total"]) + @"</td> </tr>"); row++; }