2017-05-03 5 views
0

ASP GridViewに追加するWeb画像があります。これは私がやっていることです:コードからグリッドビューへのWeb画像の追加

Image image = new Image(); 
image.ImageUrl = @"/_layouts/15/images/Project/x-mark-3-xxl.png"; 
row[course.CourseName] = image; 

私は列にオブジェクトの名前を取得します。私はdatatableをやって、グリッドビューにバインドするので、あなたが見るrow変数は明らかにdatatableの行です。グリッドビューに画像を表示する必要があります。私はこれをずっと前にやっていて、どうやってやったのか思い出せません。そして、はい、それはコードでなければなりません。

答えて

1

imageをそのようなrowに戻すことはできません。 OnRowDataBoundイベントが必要で、イメージを直接セルに追加します。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    //check if the row is a datarow 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     //cast the row back to a datarowview 
     DataRowView row = e.Row.DataItem as DataRowView; 

     Image image = new Image(); 
     image.ImageUrl = @"/_layouts/15/images/Project/" + row["imageNameColumn"].ToString(); 

     //add the image to the gridview 
     e.Row.Cells[0].Controls.Add(image); 
    } 
} 

また、イメージを後で追加する場合は、インデックスで行とセルを指定します。

GridView1.Rows[4].Cells[2].Controls.Add(image); 

更新

あなたがこれを行うことができます。セルをループし、セルが奇数か偶数かをチェックし、イメージを追加します。

for (int i = 0; i < e.Row.Cells.Count; i++) 
{ 
    if (i % 2 == 1) 
    { 
     Image image = new Image(); 
     image.ImageUrl = @"/image.jpg"; 
     e.Row.Cells[i].Controls.Add(image); 
    } 
} 
+0

これは完全に機能しますが、もう1つのリクエストがあります。これは私のグリッドの外観です: user | X | X | user2 | X | | user3 | | X | 私は画像で置き換えられるXが必要です。 申し訳ありませんが、フォーマットが正しくできません。 – plasmy

+1

更新しました – VDWWD

+0

ありがとうございました!あなたは私をたくさん助けてくれました! – plasmy

関連する問題