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">

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-17T08:07:57.597 に答える
0

API を変更したくない場合 (引き続き文字列のリストを返したい場合) で、グリッドを使用する必要がある場合は、既存のプロパティを含む新しいクラスを作成Commodityし、リストの文字列データを使用してクラスを単純に再水和することができます。 . 新しい「Commodity」クラスはそれぞれ新しいものに入るList<Commodity>ことができ、それをグリッドにバインドできます。

一方、実際に達成しようとしていることを再考し、それがオプションである場合は API を再設計することをお勧めします。

于 2013-03-17T07:54:17.127 に答える