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

时间:2015-12-10 19:10:32

标签: c# asp.net gridview

ASP.net:

<asp:GridView ID="gvSP" runat="server" AutoGenerateColumns="true">
</asp:GridView>

代码隐藏:

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

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

3 个答案:

答案 0 :(得分:2)

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

        List<dynamic> lstName = new List<dynamic>();
        List<dynamic> lstCMSID = new List<dynamic>();
        List<dynamic> lstSpecialtyPhys = new List<dynamic>();

        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();

答案 1 :(得分:1)

创建一个类

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

希望有所帮助

答案 2 :(得分:0)

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