2016-09-24 1 views
0

К сожалению, я не могу отобразить свое изображение с помощью repater и generic handler, который я назвал ImageHandler.ashx, возможно, я делаю что-то неправильно, и я не могу определить ошибку самостоятельно ,Изображение не отображается ASP.NET (Generic handler.ashx)

Вот мой код (кстати, это первый раз, когда я использую этот общий обработчик в сочетании с ретранслятором, чтобы получить мои изображения из баз данных, и я застрял здесь).

Вот мой код:

<table class="table table-hover" style="margin-top: 50px; background-color: white;"> 
<tr> 
    <th>Name</th> 
    <th>Last Name</th> 
    <th>Photo</th> 
</tr> 
<asp:Repeater ID="repPlayers" runat="server" OnItemCommand="repPlayers_ItemCommand"> 
    <ItemTemplate> 
     <tr> 

      <td><%# Eval("Name") %></td> 
      <td><%# Eval("LastName") %></td> 
      <td> 
       <asp:Image ID="imageTest" src="~/ImageHandler.ashx?id=PlayerID" runat="server" /> 
       <%--<img id="imageTest" style="width: 60px; height: 30px;" src="data:image/png;base64, <%# Convert.ToBase64String((byte[])Eval("Photo")) %> " />--%> 
      </td> 

     </tr> 
    </ItemTemplate> 
</asp:Repeater> 

ImageHandler.ashx КОД ЗА:

public class ImageHandler : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 

     int playerID = Convert.ToInt32(context.Request["PlayerID"]); 
     Players.Data.DataAccess player = Players.Data.DataAccess.GetByPlayerId(playerID); 
     context.Response.ContentType = "image/jpeg"; 
     context.Response.BinaryWrite(player.Photo); 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

Возможно, что я делаю что-то не так, может быть, я должен сочетать в себе '<%#Eval("PlayerID")%>' как-то или что? Если бы я использовал DataGrid Я хотел бы использовать контроль Item_dataBound и которые могли бы решить myproblem, но, к сожалению, я загрузка моих данных здесь в таблицу, и я не знаю, как решить эту проблему ..

редактировать: Я тоже попробовал это и это было решение: <asp:Image ID="imageTest" runat="server" ImageUrl='<%#"~/ImageHandler.ashx?PlayerID="+Eval("PlayerID") %>' />

PS Ответил код работает, но его загружает изображения медленно, как ад, и что делает целые мои загрузки страницы очень медленно, потому что я получаю как 50 объектов из базы данных и каждый из них имеет изображение :(

ПОТОМУ ЧТО Я ПОЧТА ВЫШЕ, ЧТО РЕШЕНО, МЫ МОЖЕМ УГРОЗИТЬ ЭТО ЗАКРЫТО!

+0

В комментировал коде, вы настраиваете это MimeType для изображения/PNG, но в обработчике вы устанавливаете его изображения/JPEG. Все ваши изображения pngs или есть смесь с jpeg (и, возможно, другими форматами)? –

+0

пока что все они .jpg и, как я уже сказал, прокомментированный код хорошо работает с изображениями, но его так медленно:/ –

+0

Что значит «медленный»? Как вы его протестируете? Против отдельного Windows Server или против вашего Windows 7/10? –

ответ

0

// Вот что я отредактирован, чтобы сделать это работает:

<td> 
    <asp:Image ID="imageTest" runat="server" style="width: 60px; height: 30px;" 
     ImageUrl='<%#"~/ImageHandler.ashx?PlayerID="+Eval("PlayerID") %>' /> 
</td> 

 Смежные вопросы

  • Нет связанных вопросов^_^