我正在访问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);
}
}
答案 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,如果这是一个选项。