如何组合多个列表并用作GridView数据源

ASP.net:

  

代码隐藏:

 lstName.Add(lstN[f]); //name lstCMSID.Add(lstNum[f]); //number lstSpecialtyPhys.Add(data.Text.ToString()); //value 

我想结合三个List并在上面的GridView中显示它,如下所示:

 Name Number Value John Doe 56 90 James Coon 34 24 

如何实现上述目标,因此有三列具有三个不同的标题文本。

简单的方法是做一个循环(一个for,foreach等)

  List lstName = new List(); List lstCMSID = new List(); List lstSpecialtyPhys = new List(); lstName.Add("John Doe"); lstCMSID.Add("56"); lstSpecialtyPhys.Add("90"); lstName.Add("James Coon"); lstCMSID.Add("34"); lstSpecialtyPhys.Add("24"); DataTable dt = new DataTable(); dt.Columns.Add("Name"); dt.Columns.Add("Number"); dt.Columns.Add("Value"); for (int i = 0; i < lstName.Count; i++) { dt.Rows.Add(lstName[i], lstCMSID[i], lstSpecialtyPhys[i]); } gvSP.DataSource = dt; gvSP.DataBind(); 

创建一个类作为

 private class ABC{ string name =""; int number=0,val=0; public string name1 { get { return name; } set { name = value; } } public int number1 { get { return number; } set { number = value; } } public int value1 { get { return val; } set { val = value; } } } 

在后面的代码中添加以下代码

 var source = new BindingSource(); ArrayList dataobj = new ArrayList(); ABC obj = new ABC(); obj.name="Sample" obj.number=1 obj.value=5 dataobj.add(obj); source.DataSource = dataobj; DataGrid.DataSource = source; DataGrid.Columns(0).Name="Desired Name" // So On for the Rest, to set desired name to the header 

希望能帮助到你

您可以创建DataTable并将数据放入其中,然后将表绑定到网格。