从代码中将web图像添加到gridview

时间:2017-05-03 17:49:58

标签: c# asp.net sharepoint

我有一个要添加到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中显示图像。我很久以前就这样做了,我不记得自己是怎么做到的。是的,它必须是代码。

1 个答案:

答案 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);
    }
}