Refresh Image toute les secondes [Résolu]

Signaler
Messages postés
15
Date d'inscription
vendredi 15 février 2008
Statut
Membre
Dernière intervention
11 février 2009
-
Messages postés
15
Date d'inscription
vendredi 15 février 2008
Statut
Membre
Dernière intervention
11 février 2009
-
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

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
Je précise que si cela ne marche pas avec asp:Image il suffit d'utiliser une balise HTML standard.
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
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 !
Messages postés
15
Date d'inscription
vendredi 15 février 2008
Statut
Membre
Dernière intervention
11 février 2009

Merci beaucoup ca marche tres bien