0

我正在使用 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);


        }
    }
4

2 回答 2

1

AutoGenerateColumns属性设置为 true 将对您有所帮助。

默认.aspx:

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

默认.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();
    }
}
于 2013-03-17T08:07:57.597 回答
0

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

另一方面 - 如果可以选择,最好重新考虑您实际尝试实现的目标,然后重新设计 API。

于 2013-03-17T07:54:17.127 回答