asp.net Gridview ImageField альтернативное изображение
У меня есть ниже gridview с полем изображения, связанным с номером UserID. Как я могу сделать, если изображение не существует в указанном поле старше, чтобы получить стандартную альтернативную картинку?
<ItemTemplate>
<asp:Image ID="MainPic" runat="server"
ImageUrl='<%# GetImageUrl(Eval("PerfilId") as string)%>' />
</ItemTemplate>
..
protected string GetImageUrl(string dbImgURL)
{
if (File.Exists(dbImgURL))
{
return dbImgURL;
}
else
{
return "AdminFotoUser/UserPics/BGP1.png";
}
}
1 ответ
Вы можете проверить путь к изображению в событии onRowDataBound GridView и изменить его на общее изображение, если файл не существует. используя System.IO;
if (File.Exists(path))
{
Console.WriteLine("file exists");
}
else // Найти элемент управления и привязать его к общему изображению
ИЛИ ЖЕ
Вы могли бы переделать вашу сетку по-другому: - вместо использования столбца поля изображения, вы могли бы использовать столбец шаблона следующим образом: Код:
<asp:TemplateField>
<ItemTemplate>
<asp:Image runat="server" ID="myImg"
ImageUrl='<%# GetImageUrl(Eval(col2) as string) %>' />
</ItemTemplate>
</asp:TemplateField>
Затем в своем коде вы создали функцию, которая возвращает правильный URL-адрес изображения: Код:Обновленный ответ
//Send Image name from database (DataGrid) as dbImgURL
protected string GetImageUrl(string dbImgURL)
{
if (File.Exists(dbImgURL))
{
return dbImgURL;
}
else
{
return "Green.gif";
}
}