Я хочу отобразить фиктивное изображение из папки, когда значение равно null. Среднее значение, когда ImageUrl='<%# "~/ProductImageHandler.ashx?Id="+ Eval("Id") %>'
имеет значение null, я хочу отобразить фиктивное изображение из любой папки, которую я буду размещать в проекте. Так как я могу сделать этотернарный оператор для отображения изображения в gridview
<asp:Image ID="imgProduct" Width="200px" runat="server" CommandArgument='<%#Eval("ItemId")%>'
ImageUrl='<%# "~/ProductImageHandler.ashx?Id="+ Eval("Id") %>' CommandName="ViewProductImage"/>
ProductImageHandler.cs файл
public class ProductImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int itemID = 0;
int.TryParse(context.Request.QueryString["Id"].ToString(), out itemID);
if (itemID > 0)
{
context.Response.ContentType = "image/jpeg";
Stream strm = ShowImage(itemID);
byte[] buffer = new byte[4096];
int byteSeq = strm.Read(buffer, 0, 4096);
while (byteSeq > 0)
{
context.Response.OutputStream.Write(buffer, 0, byteSeq);
byteSeq = strm.Read(buffer, 0, 4096);
}
}
}
/// <summary>
///
/// </summary>
/// <param name="Zoneid"></param>
/// <returns></returns>
private Stream ShowImage(int itemID)
{
WmsItemListDAC _WmsItemListDAC = null;
DataTable dtProduct = new DataTable();
if (_WmsItemListDAC == null)
_WmsItemListDAC = new WmsItemListDAC();
if (dtProduct == null)
dtProduct = new DataTable();
dtProduct = _WmsItemListDAC.GetProductImageByItemID(itemID);
if (dtProduct.Rows[0]["PICTURE"] != null)
{
byte[] image = (byte[])dtProduct.Rows[0]["PICTURE"];
return new MemoryStream(image);
}
else
{
return null;
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
жаль не работают для меня –
я всегда буду иметь Itemid, но не обязательно, что каждый элемент имеет изображение, поэтому я хочу, что время фиктивного изображения на этом. –
Тогда в чем проблема? Если изображение отсутствует, но всегда запрос делается на «ProductImageHandler.ashx», вы можете просто отмахиваться оттуда. – VDWWD