Refresh Image toute les secondes

Résolu
jfcecile Messages postés 15 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 11 février 2009 - 23 mai 2008 à 16:14
jfcecile Messages postés 15 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 11 février 2009 - 26 mai 2008 à 09:20
Bonjour,

je cherche à rafraifir une image contenue dans une gridview toutes les 2 secondes
<asp:ImageID="Image2"Style="float: left;"Width="200px"Height="150px"

ImageUrl="~/images/Picture_in_progress.jpeg"

runat="server"
AlternateText="Stock Image"/>

Ma gridview est dans un ajaxPanel avec un timer, et se rafraichie bien, mais l'image ne change pas.
je la modifie dans le repertoire mais elle ne change pas sur la page web
OnTick="Timer_Tick"
protected

void Timer_Tick(object sender, EventArgs e){

SqlDataSource1.DataBind(); GridView1.DataBind();

}


 

3 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
24 mai 2008 à 16:30
Je précise que si cela ne marche pas avec asp:Image il suffit d'utiliser une balise HTML standard.
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
24 mai 2008 à 16:27
Salut,
c'est normal, puisque le navigateur ne detecte pas que la propriété src de la balise image a changé, donc il prend
celle qu'il a déjà mis en cache.
La solution est de faire une page spéciale LoadImage.aspx et une balise dynamique
qui prend en param une chaine correspondant  au compteur timer en cours :







ImageUrl
= "

LoadImage.aspx?compteurTimer= <%=  this.GetCompteurTimerStringEnCours();

 %>

"









// LoadImage est une WebForm vide avec un code behind :





Codebehind ="LoadImage.aspx.cs"



// dont voici le Page_Load qui est le seul code, il écrit en binaire dans la réponse, l'image choisie :




private





void Page_Load(object  sender, System.EventArgs e)
{
   string  cptTimer = Request.QueryString["compteurTimer"];

   // SELON COMPTEUR TIMER ON PREND L'IMAGE QUE L'ON VEUT

   string  filePath = "pathPlusImageSelonTimer";

   FileStream fileStream =  new  FileStream(fullPath, FileMode.Open);
   long  fileSize = fileStream.Length;
   byte[] buffer =  new  byte[fileSize];
   fileStream.Read(buffer, 0,  (int)fileSize);
   fileStream.Close();


   Response.BinaryWrite(buffer);
}






Et on a une image qui se recharge à chaque postBack avec ou SANS ajax !
0
jfcecile Messages postés 15 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 11 février 2009
26 mai 2008 à 09:20
Merci beaucoup ca marche tres bien
0
Rejoignez-nous