Одним из подходов может быть проверка каждой строки во время события RowDataBound, чтобы увидеть, существует изображение или нет. Если он пуст, вы можете назначить URL-адрес изображения по умолчанию.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
Image image= (Image)e.Row.FindControl("ImageForPerson");
if (image != null && image.ImageIrl == "")
{
image.ImageUrl = // default image url goes here
}
}
}
Не забудьте добавить событие RowDataBound в определение GridView.
<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" />
Или, если вы не хотите использовать событие RowDataBound. В Page_Load вы можете вручную пройти каждую строку GridView и проверить ImageUrl один за другим.
protected void Page_Load(object sender, EventArgs e)
{
foreach(GridViewRow gvr in GridView1.Rows)
{
Image image = (Image)gvr.FindControl("ImageForPerson");
if (image != null && image.ImageIrl == "")
{
image.ImageUrl = // default image url goes here
}
}
}