グリッドビューでオブジェクト内のオブジェクトをバインドしたいこれは可能ですか?

私のクラス構造は

public class Listings
{
    public string id { get; set; }
    public string title { get; set; }

    public ListingsImages[] images;
}

public class ListingsImages
{ 
    public string src { get; set; }
    public string width { get; set; }
    public string height { get; set; }
    public string alt { get; set; }
    public string num { get; set; }
    public string size { get; set; }
}

グリッドビューとバインディングをバインドしたい

List p = getData(); //returns list of Listings
gv.DataSource = p;
gv.DataBind();

私のグリッドビューコードは


            
                
                    
                        <%# Eval("id") %>
                             
                        <%# Eval("title") %>
                             
                        <%# Eval(?????)%>
                    
                
            
        

1つのListingsオブジェクトには10​​個の画像が含まれています。今問題は、すべてのリストオブジェクトの6番目の写真を表示したいということです。 私が試してみました

 <%# Eval("images[5].src")%>

しかし、それは私にエラーを与える!何が解決すべきか私に答えてください。 ( 1つのgridviewと1つのデータソースのみ

3
それは役に立ちます...?
追加された 著者 Pranay Rana,
@PranayRana私はこれを試していない 'Cz別の解決策を見つけたので、私はその答えをbtwおかげで選ぶ!私は将来使用します!
追加された 著者 Chintan,

1 答え

はい、そうするためにグリッドの RowDataBound()イベントを使用することでそれを行うことができます。

protected GridView_RowDataBound(object sender,
  GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
            //e.row.DataItem -- points to data/object which is going to be bind with the row 
     }
}
1
追加された
@Rob Levine - rowdataboundでは、このイベントで私に簡単にアクセスできるdataitmeにアクセスできるだけでなく、クエリーもできます。彼が望むタスクを実行できる
追加された 著者 Pranay Rana,
簡単な説明または任意のリンク
追加された 著者 Chintan,
@PranayRana :(動作していない!
追加された 著者 Chintan,
私はこれが役立つとは思わない。データソース自体は、コレクションではないListingsクラスです。これはコレクションであり、データソースとしてバインドされていないイメージプロパティです。
追加された 著者 Rob Levine,