linq To DataTable 实现Group by 多个栏位

linq To DataTable 实现Group by 多个栏位

 

protected void LoadRoutingData2(DataTable dt)
        {
            //linq to DataTable 实现group by 多个栏位
            var t = dt.AsEnumerable().GroupBy(x => new { ManagerID = x.Field<string>("ManagerID"), Reviewer_1_ID = x.Field<string>("Reviewer_1_ID"),
                                                         Reviewer_2_ID = x.Field<string>("Reviewer_2_ID"), SystemAdmin = x.Field<string>("System Admin")});

            string list2Text = "";
            int rowNo = 1;
            string trFormat = @"<tr class='trData {9}' tag='{0}'><td>{10}</td><td>{1} </td><td>{2} </td><td>{3} </td><td>{4} </td><td>{5} </td><td>{6} </td><td>{7} </td><td>{8} </td></tr>";

            foreach (var a in t)
            {                
                string reviewer_1_id = a.Key.Reviewer_1_ID;
                string reviewer_2_id = a.Key.Reviewer_2_ID;
                string managerID = a.Key.ManagerID;
                string sysadmin = a.Key.SystemAdmin;

                list2Text += string.Format("<tr mainTag='{0}' class='trRouting'><td colspan='9'>{1} -> {2} -> {3} -> {4}</td></tr>",
                    rowNo,
                    managerID, reviewer_1_id, reviewer_2_id, sysadmin);

                int drDataNO = 0;
                foreach (DataRow drData in a)
                { 
                   var trStyle = "gdTr1";
                    if (drDataNO % 2 != 0)
                    {
                        trStyle = "gdTr2";
                    }

                    drDataNO++;
                    list2Text += string.Format(trFormat, rowNo,
                        drData["ApplicationName"].ToString(), drData["UserID"].ToString(), drData["Name"].ToString(), drData["Mail"].ToString(),
                        drData["Department"].ToString(), drData["Access Data"].ToString(), drData["Appeove"].ToString(), drData["Remark"].ToString(),
                        trStyle, drDataNO);
                }

                rowNo++;
            }

            ltrGroupList2.Text = string.Format(@"<table CellPadding='0' CellSpacing='0' class='myGd' style='width:100%'>
                <tr class='gdHeader'><th>RowNo</th><th>ApplicationName</th><th>UserID</th><th>Name</th><th>Mail</th><th>Department</th><th>Access Data</th><th>Appeove</th><th>Remark</th></tr>
                {0}
            </table>", list2Text);            
        }



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值