none
image no se refresca del lado del cliente RRS feed

  • Pregunta

  • Buenos días.

    Tengo un problemita con un IMAGE.ImageUrl.

    esta imagen se tienen que actualizar cada vez que seleccione un reglón de un un gridviewer; pero esta imagen se actualiza dependiendo de los valores de cada renglón.

    En el equipo de desarrollo funciona adecuadamente al momento de ejecutar la aplicación, pero cuando se instala en un servidor o de hecho lo ejecuto como localhost desde el equipo de desarrollo, no actualiza el image, deje el primero que encuentra.

    En la carpeta de imágenes si esta actualizando el archivo.

    Como último recurso quite el updatepanel y sigue sin refrescar la imagen por el lado del  cliente.

    Espero me haya explicado correctamente.

    saludos.

    domingo, 1 de diciembre de 2013 14:05

Todas las respuestas

  • esta imagen se tienen que actualizar cada vez que seleccione un reglón de un un gridviewer;

    en que evento del gridview actualizas la imagen ?

    como asignas la imagen el control Image?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 1 de diciembre de 2013 16:03
  • buenas tardes Leandro, te contesto a tus preguntas:

    el evento del gridviewer que utilizo para asignar la imagen es el   SelectedindexChanged.

    y dentro de este evento realizo lo siguiente:

    fotosBLL BuscaRegFoto = new fotosBLL(); principaljr.fotosDataTable RegistroDTF = BuscaRegFoto.GetBuscaIdBien(rowRegistro.identificador); if (RegistroDTF.Count == 0) { imgFoto.ImageUrl = "~/fotos/000.jpg"; } else { MySqlConnection con = new MySqlConnection((string)Session["conexion"]); MySqlDataAdapter da = new MySqlDataAdapter("Select * From fotos where idBien="+"'"+rowRegistro.identificador+"';", con); MySqlCommandBuilder MyCB = new MySqlCommandBuilder(da); DataSet ds = new DataSet("MyImages"); byte[] MyData = new byte[0]; da.Fill(ds, "MyImages"); DataRow myRow; myRow = ds.Tables["MyImages"].Rows[0]; MyData = (byte[])myRow["foto"]; int ArraySize = new int(); ArraySize = MyData.GetUpperBound(0); FileStream fs = new FileStream(Server.MapPath("~/fotos/origen.jpg"), FileMode.OpenOrCreate, FileAccess.Write); //@"C:\winnt\Gone Fishing2.BMP" fs.Write(MyData, 0, ArraySize); fs.Close(); con.Close(); imgFoto.ImageUrl = "~/fotos/origen.jpg"

    }

    ahora quizás me des la observación de que si ya tengo el "if (RegistroDTF.Count == 0)", ¿por qué no lo asigne directamente el en else al image con imgFoto.ImageUrl  utilizando:

      principaljr.fotosRow rowRegistroF = RegistroDTF[0];
      imgFoto.ImageUrl = rowRegistroF.foto;

    ya se que esta mal la segunda línea, pero no supe como asignarle directamente el valor de rowRegistroF.foto, por eso lo puse con el procedimiento almacenado.

    si pudieras asesorarme como asignarle ese valor para quitar el procedimiento almacenado, te lo agradecería.

    Ahora y para finalizar este procedimiento lo esta haciendo bien en la máquina de desarrollo incluso si actualiza la foto origen.png; del lado del cliente (ya compilada e instalada la aplicación), este bloque lo esta haciendo bien y actualizando el archivo origen.png, pero en el formulario no la cambia, deja la primera foto que se selecciono en el gridviewer.

    saludos y gracias.

    domingo, 1 de diciembre de 2013 19:53