Я создал некоторый внутренний код для получения изображения из базы данных SQL Server.Я хочу отобразить это изображение в своей веб-форме на основе текущего значения выбранного элемента управления gridview.
У меня есть страница с именем GetImage.aspx, которая принимает два параметра строки запроса, entityId и entityType.entityId - это GridView.SelectedValue, а entityType - просто "T".Мой код для GetImage.aspx выглядит следующим образом:
protected void Page_Load (Object server, EventArgs e)
{
if ((Request.QueryString["entityId"] != null) && (Request.QueryString["entityType"] != null))
{
int entityId = int.Parse(Request.QueryString["entityId"]);
string entityType = Request.QueryString["entityType"];
DBUtil DB = new DBUtil();
DataTable dt = DB.GetScreenshot(entityId, entityType);
if (dt != null)
{
Byte[] bytes = (Byte[])dt.Rows[0]["screenshot"];
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = dt.Rows[0]["ContentType"].ToString();
Response.AddHeader("content-disposition", "attachment;filename="+ dt.Rows[0]["fileName"].ToString());
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
}
}
Какой код ASP.NET мне нужно, чтобы отобразить это в моей форме вызова?
Спасибо.
РЕДАКТИРОВАТЬ
Я добавил этот код в свою форму (я не пытаюсь отобразить изображение в GridView, только в моей форме под GridView):
<img id="tradeScreenshot" runat="server" alt="screenshot" />
и добавил этот код:
protected void grdTrades_SelectedIndexChanged(object sender, EventArgs e)
{
string tradeId = grdTrades.SelectedDataKey.Value.ToString();
tradeScreenshot.Src = "GetImage.aspx?entityId=" + tradeId + "&entityType=T";
}
Изображение не отображается, однако я вижу хранимую процедуру, выполняемую на сервере базы данных с правильным идентификатором, когда я выбираю элемент в GridView, так чточасть работает, но изображение не работает.Чего мне не хватает?