none
Mostrar imagen tipo bytes en asp:image gridview rowdatabound RRS feed

  • Pregunta

  • Hola buen dia a todos, espero explicarme y si me pueden orientar.

    Estoy tratando de mostrar una imagen en un gridview, pero me marca la siguiente excepcion, anexo como tengo mi codigo:

    <ItemTemplate>
                            <%--<asp:Image ID="Image1" runat="server" CssClass="imgProduct" 
                            ImageUrl='<%# "data:Image/png;base64," + Convert.ToBase64String(Eval("ImagenProducto"))%>'/>--%>
                            <%--<asp:Image ID="imgID" runat="server" />--%>
                            <asp:Image id="ImageId" runat="server" CssClass="imgProduct" />
    </ItemTemplate>

                    Dim objImg As New System.Web.UI.WebControls.Image

                    objImg = CType(e.Row.FindControl("ImageId"), System.Web.UI.WebControls.Image)

                    Dim bytes As Byte() = CType(Conect.executeScalar(" SELECT imagen FROM imagenes WHERE idImagen = '671b20bd-cecc-445e-8442-393c1f2327a4' "), Byte())

     Dim ss As String = Convert.ToBase64String(bytes)

    imgProduct.ImageUrl = "data:Imagen/png;base64," & ss

    Al ejecutar mi aplicacion me manda la siguiente excepcion

    ME MUESTRA QUE NO CONTROLE LA EXCEPCION O QUE DEBO VALIDAR QUE EL OBJETO NO SEA NULL, me pueden ayudar?

    Lo hago de la siguiente manera, ya que en otra pagina que tengo, muestro solamente una imagen y ahi si la puedo mostrar, les agradeceria mucho su ayuda y su respuesta.

    jueves, 25 de enero de 2018 3:30

Respuestas

  • hola

    si antes usaste

     objImg = CType(e.Row.FindControl("ImageId"), System.Web.UI.WebControls.Image)

    porque despues usas

    imgProduct.ImageUrl = "data:Imagen/png;base64," & ss

    de donde sale imgProduct? si se supone que la imagen de la row es objImg

    deebs validar que no tengas estas en null

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 25 de enero de 2018 15:03

Todas las respuestas

  • hola

    si antes usaste

     objImg = CType(e.Row.FindControl("ImageId"), System.Web.UI.WebControls.Image)

    porque despues usas

    imgProduct.ImageUrl = "data:Imagen/png;base64," & ss

    de donde sale imgProduct? si se supone que la imagen de la row es objImg

    deebs validar que no tengas estas en null

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 25 de enero de 2018 15:03
  • Hola que tal, anexo como lo tengo, no me explique anteriormente.

    Dim objImg As New System.Web.UI.WebControls.Image
                    objImg = CType(e.Row.FindControl("ImageId"), System.Web.UI.WebControls.Image)

                    Dim bytes As Byte() = CType(Conect.executeScalar(" SELECT imagen FROM imagenes WHERE idImagen = '671b20bd-cecc-445e-8442-393c1f2327a4' "), Byte())
                    Dim ss As String = Convert.ToBase64String(bytes)

                    objImg.ImageUrl = "data:Imagen/png;base64," & ss 

    Object reference not set to an instance of an object.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error: 
    Line 237:                Dim ss As String = Convert.ToBase64String(bytes)
    Line 238:
    Line 239:                objImg.ImageUrl = "data:Imagen/png;base64," & ss
    Line 240:
    Line 241:                For Each row2 As DataRow In tableDinamically.Rows

    jueves, 25 de enero de 2018 20:35
  • Ya lo solucione, use este codigo:

    objImg = TryCast(row.FindControl("ImageId"), System.Web.UI.WebControls.Image)

    el otro codigo que tenia me devolvia null, no encontraba el objeto, gracias.

    domingo, 28 de enero de 2018 0:24