我正在访问一个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);
}
}发布于 2013-03-17 16:07:58
将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();
}
}发布于 2013-03-17 15:54:17
如果您不想更改API (仍然希望返回一个字符串列表),并且需要使用网格,那么可以创建一个包含Commodity中已有属性的新类,并使用列表字符串数据简单地恢复该类的状态。每个新的“商品”类都可以放在一个新的List<Commodity>中,你可以把它绑定到网格上。
另一方面,如果可以选择的话,最好重新考虑一下你真正想要实现的目标,然后重新设计API。
https://stackoverflow.com/questions/15458452
复制相似问题