首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

repeater两列归拢成一列

2012-08-14 
repeater两列合并成一列比如说姓名年龄课程张三12物理张三12英语里斯13化学小明14英语这是我从数据库中直

repeater两列合并成一列
比如说


姓名 年龄 课程
张三 12 物理
张三 12 英语
里斯 13 化学
小明 14 英语


这是我从数据库中直接绑定的数据


我希望的效果是
姓名 年龄 课程
张三 12 物理、英语
里斯 13 化学
小明 14 英语



但是我现在课程能合并 但是出现了两条重复的记录  
请指教! 谢谢!

[解决办法]
可以考虑下嵌套就可以实现
[解决办法]
SQL写个函数,传进去姓名跟年龄返回课程
[解决办法]

C# code
    protected void Page_Load(object sender, EventArgs e)    {        DataTable dt = new DataTable();        dt.Columns.Add("姓名", typeof(string));        dt.Columns.Add("年龄", typeof(string));        dt.Columns.Add("课程", typeof(string));        dt.Rows.Add("张三", "12", "物理");        dt.Rows.Add("张三", "12", "英语");        dt.Rows.Add("李四", "13", "化学");        dt.Rows.Add("王五", "14", "物理");        var results = dt.AsEnumerable().GroupBy(o => o.Field<string>("姓名"))            .Select(o => new            {                姓名 = o.Key,                年龄 = o.Max(n => n.Field<string>("年龄")),                课程 = string.Join(",", dt.AsEnumerable().Where(p => p.Field<string>("姓名") == o.Key)                .Select(s => s.Field<string>("课程")).ToArray())            }).ToList();        foreach (var r in results)        {            Response.Write(r.姓名);            Response.Write("    ");            Response.Write(r.年龄);            Response.Write("    ");            Response.Write(r.课程);            Response.Write("<br/>");        }    } 

热点排行