DataGridView 控件中的动态列 (ASP.NET)
Dynamic columns in DataGridView control (ASP.NET)
我有一个列表,其中包含以下模板中的记录。
日期 |用户 |问题 |答案(选项)
其记录将类似于
2015 年 2 月 2 日 |哈利 |什么是..? | 5
2015 年 2 月 2 日 |哈利 |如何..? | 4
2015 年 2 月 3 日 |爱丽丝 |什么是..? | 3
2015 年 2 月 3 日 |爱丽丝 |如何..? | 1
我需要一个数据 Gridview 来显示以下模板中的记录。
日期 |用户 |什么是..? |怎么..?
2015 年 2 月 2 日 |哈利 | 5 | 4
2015 年 2 月 3 日 |爱丽丝 | 3 | 1
谁能帮帮我。有什么聪明的方法可以做到这一点吗?
提前致谢。
//从工具箱中取出一个dataGridView
DataTable dt = new DataTable();
dt.Columns.Add("date");
dt.Columns.Add("name");
dt.Columns.Add("info");
dt.Columns.Add("id");
for (Loop through your records)
{
dr = dt.NewRow();
dr[0] = ....; // your code here
dr[1] = ....;
dr[2] = ....;
dr[3] = ....;
dt.Rows.Add(dr); // now put row in table
Form2 f2 = new Form2();
f2.Show();
f2.dataGridView1.DataSource = dt;
不确定这是否是预期的答案,但它产生了预期的结果。
List<Record> Records = new List<Record>();
Records.Add(new Record { Answer = 5, Date = DateTime.Parse("02/02/2015"), User = "Harry", Question = "What is..?" });
Records.Add(new Record { Answer = 4, Date = DateTime.Parse("02/02/2015"), User = "Harry", Question = "How is..?" });
Records.Add(new Record { Answer = 3, Date = DateTime.Parse("02/03/2015"), User = "Alice", Question = "What is..?" });
Records.Add(new Record { Answer = 1, Date = DateTime.Parse("02/03/2015"), User = "Alice", Question = "How is..?" });
var Result = Records.GroupBy(r => new { r.Date, r.User })
.Select(g => new
{
Date = g.Key.Date,
User = g.Key.User,
WhatIs = g.Where(i => i.Question == "What is..?")
.Where(i => i.User == g.Key.User).Select(i => i.Answer).First(),
HowIs = g.Where(i => i.Question == "How is..?")
.Where(i => i.User == g.Key.User).Select(i => i.Answer).First()
}).ToList();
dataGridView1.DataSource = Result;
我有一个列表,其中包含以下模板中的记录。
日期 |用户 |问题 |答案(选项)
其记录将类似于
2015 年 2 月 2 日 |哈利 |什么是..? | 5
2015 年 2 月 2 日 |哈利 |如何..? | 4
2015 年 2 月 3 日 |爱丽丝 |什么是..? | 3
2015 年 2 月 3 日 |爱丽丝 |如何..? | 1
我需要一个数据 Gridview 来显示以下模板中的记录。
日期 |用户 |什么是..? |怎么..?
2015 年 2 月 2 日 |哈利 | 5 | 4
2015 年 2 月 3 日 |爱丽丝 | 3 | 1
谁能帮帮我。有什么聪明的方法可以做到这一点吗? 提前致谢。
//从工具箱中取出一个dataGridView
DataTable dt = new DataTable();
dt.Columns.Add("date");
dt.Columns.Add("name");
dt.Columns.Add("info");
dt.Columns.Add("id");
for (Loop through your records)
{
dr = dt.NewRow();
dr[0] = ....; // your code here
dr[1] = ....;
dr[2] = ....;
dr[3] = ....;
dt.Rows.Add(dr); // now put row in table
Form2 f2 = new Form2();
f2.Show();
f2.dataGridView1.DataSource = dt;
不确定这是否是预期的答案,但它产生了预期的结果。
List<Record> Records = new List<Record>();
Records.Add(new Record { Answer = 5, Date = DateTime.Parse("02/02/2015"), User = "Harry", Question = "What is..?" });
Records.Add(new Record { Answer = 4, Date = DateTime.Parse("02/02/2015"), User = "Harry", Question = "How is..?" });
Records.Add(new Record { Answer = 3, Date = DateTime.Parse("02/03/2015"), User = "Alice", Question = "What is..?" });
Records.Add(new Record { Answer = 1, Date = DateTime.Parse("02/03/2015"), User = "Alice", Question = "How is..?" });
var Result = Records.GroupBy(r => new { r.Date, r.User })
.Select(g => new
{
Date = g.Key.Date,
User = g.Key.User,
WhatIs = g.Where(i => i.Question == "What is..?")
.Where(i => i.User == g.Key.User).Select(i => i.Answer).First(),
HowIs = g.Where(i => i.Question == "How is..?")
.Where(i => i.User == g.Key.User).Select(i => i.Answer).First()
}).ToList();
dataGridView1.DataSource = Result;