我希望有一个通用方法,以实现以下目标:
我有' n' Lists
的{{1}},我希望它们在相应的列下显示为string
的行。
可能低于代码会让我的问题更清楚:
Data Table
在上面的代码中,List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
List<string> list3 = new List<string>();
for (int num1 = 0; num1 < 4; num1++)
{
list1.Add(num1.ToString());
}
for (int num2 = 4; num2 < 8; num2++)
{
list2.Add(num2.ToString());
}
for (int num3 = 8; num3 < 12; num3++)
{
list3.Add(num3.ToString());
}
DataTable dtTable = new DataTable();
dtTable.Columns.Add("Column1", typeof(string));
dtTable.Columns.Add("Column2", typeof(string));
dtTable.Columns.Add("Column3", typeof(string));
for (int num4 = 0; num4 < list1.Count; num4++)
{
dtTable.Rows.Add(list1[num4], list2[num4], list3[num4]);
}
GridView2.DataSource = dtTable;
GridView2.DataBind();
,list1
,list2
下的项目分别作为list3
,Column1
,Column2
列下的行像:
Column3
我要求有50个不同的列,最终将它们绑定到Column1 Column2 Column3
0 4 8
1 5 9
2 6 10
3 7 11
。
我不能手动将列表添加为行,即
GridView
如何概括上述内容以获取n个列表?
专家请帮忙。
答案 0 :(得分:1)
你可以试试这个。创建一个处理所有列表的方法
private void PopulateGrid(params List<string>[] list)
{
DataTable dtTable = new DataTable();
for (int listIndex = 0; listIndex < list.Length; listIndex++)
{
dtTable.Columns.Add(string.Format("Column{0}", listIndex), typeof(string));
}
for (int rowIndex = 0; rowIndex < list[0].Count; rowIndex++)
{
DataRow dr = dtTable.NewRow();
for (int listIndex = 0; listIndex < list.Length; listIndex++)
{
dr[listIndex] = list[listIndex][rowIndex];
}
dtTable.Rows.Add(dr);
}
dataGridView1.DataSource = dtTable;
}
然后创建一个主List
,这样您就可以添加任意数量的列表
List<List<string>> allLists = new List<List<string>>();
/* Code to populate the lists */
allLists.Add(list1);
allLists.Add(list2);
allLists.Add(list3);
...
allLists.Add(listn);
然后调用方法
PopulateGrid(allLists.ToArray());