如何将List <string>绑定到ASP.NET中的GridView?</string>

时间:2013-03-17 07:16:12

标签: asp.net

我正在访问API并将返回的已解析数据存储到List。目前我正在ListView中显示数据。 我无法在GridView中显示相同的列表。谁能指导我怎么做?

这是我的aspx.cs代码:

    protected void Page_Load(object sender, EventArgs e)
    {
        ComodityList obj_comodity_in = (ComodityList)Session["comodity_list"];
        Label1.Text = obj_comodity_in.status_code;
        Label2.Text = obj_comodity_in.count.ToString();

        //ComodityList obj_comodity_in = (ComodityList)Session["comodity_list"];

        List<String> commodity_names = null;
        getComodityNames(out commodity_names, obj_comodity_in);
        ListView1.DataSource = commodity_names;
        ListView1.DataBind();   
    }
    private void getComodityNames(out List<String> commodity_names, ComodityList cl)
    {
        commodity_names = new List<string>();
        foreach (Commodity c in cl.data)
        {
            commodity_names.Add(c.commodity);
            commodity_names.Add(c.state);
            commodity_names.Add(c.market);
            commodity_names.Add(c.Maximum_Price.ToString());
            commodity_names.Add(c.Minimum_Price.ToString());
            commodity_names.Add(c.Modal_Price.ToString());
            commodity_names.Add(c.origin);
            commodity_names.Add(c.unit);
            commodity_names.Add(c.variety);


        }
    }

2 个答案:

答案 0 :(得分:1)

AutoGenerateColumns属性设置为true可以帮助您。

Default.aspx的:

 <asp:GridView ID="GridView1" runat="server" Width="95%" autogeneratecolumns = "false">

Default.aspx.cs:

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<string> s = new List<string>() { "a", "b", "c" };
        this.GridView1.DataSource = s;
        this.GridView1.DataBind();
    }
}

答案 1 :(得分:0)

如果您不想更改API(您仍然希望返回字符串列表)并且需要使用网格,则可以创建一个包含Commodity中已有属性的新类,使用列表字符串数据重新水化类。每个新的“商品”类都可以使用新的List<Commodity>,您可以将其绑定到网格中。

另一方面 - 最好重新考虑一下你实际想要实现的目标,然后重新设计API,如果这是一个选项。