Как отобразить изображение на основе SelectedValue в GridView? - PullRequest
0 голосов
/ 04 ноября 2010

Я создал некоторый внутренний код для получения изображения из базы данных 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, так чточасть работает, но изображение не работает.Чего мне не хватает?

1 Ответ

1 голос
/ 05 ноября 2010

Зависит от того, что вы показываете в виде сетки, и как выбираются строки.Сетка не имеет выбранного значения - она ​​имеет выделенный элемент, который может иметь несколько ключей данных.

ASP.NET:

<img src="" runat="server" id="selectedimage" />
<asp:GridView OnSelectedIndexChanged="ChangeItem" 
  DataKeyNames="ImageId"
  runat="server" id="MyGrid"></asp:GridView>

C #:

public void ChangeItem(object o,EventArgs e){
   string ImageId = MyGrid.SelectedDataKey.Value.ToString();
   selectedimage.Src = "GetImage.aspx?entityId="+ImageId+"&entityType=T";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...