处理前:
ID itemId title
1 3 aaa
2 1 bbb
2 2 bbb
2 10 bbb
4 1 ccc
4 8 ccc
5 8 ddd
处理后:
ID itemId title
1 3 aaa
2 1,2,10 bbb
4 1,8 ccc
5 8 ddd
asp.net程序实现:
DataTable dt = new DataTable();
DataColumn c1 = new DataColumn();
c1.ColumnName = "ID";
dt.Columns.Add(c1);
DataColumn c2 = new DataColumn();
c2.ColumnName = "itemId";
dt.Columns.Add(c2);
DataColumn c3 = new DataColumn();
c3.ColumnName = "title";
dt.Columns.Add(c3);
DataRow row;
row = dt.NewRow();
row[0] = "1";
row[1] = "3";
row[2] = "aaa";
dt.Rows.Add(row);
row = dt.NewRow();
row[0] = "2";
row[1] = "1";
row[2] = "bbb";
dt.Rows.Add(row);
row = dt.NewRow();
row[0] = "2";
row[1] = "2";
row[2] = "bbb";
dt.Rows.Add(row);
row = dt.NewRow();
row[0] = "2";
row[1] = "10";
row[2] = "bbb";
dt.Rows.Add(row);
row = dt.NewRow();
row[0] = "4";
row[1] = "1";
row[2] = "ccc";
dt.Rows.Add(row);
row = dt.NewRow();
row[0] = "4";
row[1] = "8";
row[2] = "ccc";
dt.Rows.Add(row);
row = dt.NewRow();
row[0] = "5";
row[1] = "8";
row[2] = "ddd";
dt.Rows.Add(row);
DataTable dt1 = dt.Clone();
int j = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == 0)
{
row = dt1.NewRow();
row[0] = dt.Rows[i][0];
row[1] = dt.Rows[i][1];
row[2] = dt.Rows[i][2];
dt1.Rows.Add(row);
++j;
}
else
{
if (dt.Rows[i][0] == dt.Rows[i - 1][0])
{
dt1.Rows[j - 1][1] = dt1.Rows[j - 1][1].ToString() + "," + dt.Rows[i][1].ToString();
}
else
{
row = dt1.NewRow();
row[0] = dt.Rows[i][0];
row[1] = dt.Rows[i][1];
row[2] = dt.Rows[i][2];
dt1.Rows.Add(row);
++j;
}
}
}
this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();
this.GridView2.DataSource = dt1.DefaultView;
this.GridView2.DataBind();