我有一个要添加到ASP GridView的Web Image。这就是我正在做的事情:
Image image = new Image();
image.ImageUrl = @"/_layouts/15/images/Project/x-mark-3-xxl.png";
row[course.CourseName] = image;
我在列中找回对象的名称。我正在做一个数据表,然后将它绑定到gridview,所以' row'你看到的变量显然是数据表的一行。我需要在gridview中显示图像。我很久以前就这样做了,我不记得自己是怎么做到的。是的,它必须是代码。
答案 0 :(得分: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);
}
}