【发布时间】:2011-05-05 02:09:02
【问题描述】:
我已经构建了一些后端代码来从 SQL Server 数据库中检索图像。我想根据 gridview 控件的当前选定值在我的 Web 表单上显示此图像。
我有一个名为 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 中选择一个项目时,我可以看到在具有正确 ID 的数据库服务器上执行的存储过程,因此该部分正在工作,但图像的显示不是.我错过了什么?
【问题讨论】: