Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1437 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [ASP.NET] Mon éternel problem de refresh...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP.NET] Mon éternel problem de refresh...

n°1324868
Arjuna
Aircraft Ident.: F-MBSD
Posté le 14-03-2006 à 10:46:21  profilanswer
 

J'ai une page.
 
Dans la partie supérieure, j'ai une liste de liens.
OnCommand dessus, je charge dans la partie inférieure des informations correspondantes dans un forumlaire.
Dans ce cas, ça marche bien : je clique, et immédiatement j'ai les infos qui se chargent.
 
Par contre, en bas du formulaire, j'ai un bouton "save", qui met à jour la base de données.
Là, la liste des liens ne se rafraîchit pas. Je dois recharger manuellement la page une second fois pour voir mes modifs.
 
Et ça me gonfle, c'est à chaque fois pareil, et à chaque fois je dois faire des bidouilles prises de tête pour que ça marche.
 
Est-ce qu'il y a un moyen "simple" pour faire marcher la chose ?
 
Voici le code de ma page :
 

Code :
  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. namespace bci
  12. {
  13. /// <summary>
  14. /// Summary description for WriteNews.
  15. /// </summary>
  16. public class WriteNews : System.Web.UI.Page
  17. {
  18.  private Queries commander;
  19.  protected System.Web.UI.WebControls.TextBox boxNumnew;
  20.  protected System.Web.UI.WebControls.TextBox boxTitre;
  21.  protected System.Web.UI.WebControls.Calendar boxDatdeb;
  22.  protected System.Web.UI.WebControls.Calendar boxDatfin;
  23.  protected System.Web.UI.WebControls.ListBox boxTypdes;
  24.  protected System.Web.UI.WebControls.Button btnSave;
  25.  protected System.Web.UI.WebControls.LinkButton btnNewnew;
  26.  protected System.Web.UI.WebControls.TextBox boxNewtxt;
  27.  protected System.Web.UI.WebControls.Repeater newsList;
  28.  private void Page_Load(object sender, System.EventArgs e)
  29.  {
  30.   commander = new Queries(string.Format((string) Application["cnxString"], (string) Application["dbLogin"], (string) Application["dbPass"], (string) Application["dbTNS"]));
  31.   // Ajouter le code pour bloquer si Session vide !
  32.   if (Session.Count == 0 || Session["login"] == null || Session["typtie"] == null || Session["codsoc"] == null || Session["password"] == null)
  33.   {
  34.    Session.Clear();
  35.    Response.Redirect("Default.aspx", true);
  36.   }
  37.   if (!commander.RunTestQuery())
  38.   {
  39.    Session.Clear();
  40.    Response.Redirect("Default.aspx", true);
  41.   }
  42.   if (!habilitation.getHabilitation((string)Session["habilitation"], habilitation.Habilitations.writeNews))
  43.   {
  44.    Response.Redirect("Collection.aspx", true);
  45.   }
  46.   newsList.DataSource = commander.LoadNewsForAuthor((decimal)Session["codsoc"], (string)Session["typtie"], (string)Session["login"]);
  47.   newsList.DataBind();
  48.   commander.webLog(Session["codsoc"], Session["typtie"], Session["login"], Request.ServerVariables["http_host"], Request.FilePath, Session["sigdep"], Session["codpro"]);
  49.  }
  50.  private void Page_Unload(object sender, System.EventArgs e)
  51.  {
  52.   try{commander.Close();}
  53.   catch {};
  54.   commander = null;
  55.  }
  56.  protected void NewsList_DataBound(object sender, RepeaterItemEventArgs e)
  57.  {
  58.   if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  59.   {
  60.    DataRowView dr = ((DataRowView) e.Item.DataItem);
  61.    if (dr != null)
  62.    {
  63.     Label newLinkTxt = ((Label) e.Item.FindControl("txtTitre" ));
  64.     LinkButton newLinkBtn = new LinkButton();
  65.     newLinkBtn.Text = ((string) dr["newtit"]).ToString();
  66.     newLinkBtn.CommandName = "numnew";
  67.     newLinkBtn.CommandArgument = ((decimal) dr["numnew"]).ToString();
  68.     newLinkBtn.Command += new CommandEventHandler(NewLinkBtn_Command);
  69.     newLinkTxt.Controls.Add(newLinkBtn);
  70.     ((Label) e.Item.FindControl("txtDatdeb" )).Text = ToolBox.DateGnxToString((string) dr["datdeb"], "-" );
  71.     ((Label) e.Item.FindControl("txtDatfin" )).Text = ToolBox.DateGnxToString((string) dr["datfin"], "-" );
  72.    }
  73.   }
  74.  }
  75.  protected void NewLinkBtn_Command(Object sender, CommandEventArgs e)
  76.  {
  77.   if (e.CommandArgument != null)
  78.   {
  79.    DataRow dr = commander.LoadNewsForID(System.Convert.ToDecimal((string)e.CommandArgument)).Rows[0];
  80.    boxNumnew.Text = ((decimal)dr["numnew"]).ToString();
  81.    boxTitre.Text = (string)dr["newtit"];
  82.    if ((string)dr["datdeb"] != " " )
  83.    {
  84.     boxDatdeb.SelectedDate = ToolBox.DateGnxToDate((string)dr["datdeb"]);
  85.    }
  86.    if ((string)dr["datfin"] != " " )
  87.    {
  88.     boxDatfin.SelectedDate = ToolBox.DateGnxToDate((string)dr["datfin"]);
  89.    }
  90.    switch ((string)dr["typdes"])
  91.    {
  92.     case " ":
  93.      boxTypdes.SelectedIndex = 0;
  94.      break;
  95.     case "CLI":
  96.      boxTypdes.SelectedIndex = 1;
  97.      break;
  98.     case "REP":
  99.      boxTypdes.SelectedIndex = 2;
  100.      break;
  101.     default:
  102.      break;
  103.    }
  104.    boxNewtxt.Text = (string)dr["newtxt"];
  105.   }
  106.  }
  107.  protected void btnNewnew_Command(Object sender, CommandEventArgs e)
  108.  {
  109.   boxNumnew.Text = string.Empty;
  110.   boxTitre.Text = string.Empty;
  111.   boxDatdeb.SelectedDate = DateTime.Now;
  112.   boxDatfin.SelectedDate = DateTime.Now;
  113.   boxTypdes.SelectedIndex = 0;
  114.   boxNewtxt.Text = string.Empty;
  115.  }
  116.  #region Web Form Designer generated code
  117.  override protected void OnInit(EventArgs e)
  118.  {
  119.   //
  120.   // CODEGEN: This call is required by the ASP.NET Web Form Designer.
  121.   //
  122.   InitializeComponent();
  123.   base.OnInit(e);
  124.  }
  125.  /// <summary>
  126.  /// Required method for Designer support - do not modify
  127.  /// the contents of this method with the code editor.
  128.  /// </summary>
  129.  private void InitializeComponent()
  130.  {   
  131.   this.newsList.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.NewsList_DataBound);
  132.   this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
  133.   this.btnNewnew.Command += new CommandEventHandler(this.btnNewnew_Command);
  134.   this.Unload += new System.EventHandler(this.Page_Unload);
  135.   this.Load += new System.EventHandler(this.Page_Load);
  136.  }
  137.  #endregion
  138.  private void btnSave_Click(object sender, System.EventArgs e)
  139.  {
  140.   commander.CreateNews(boxNumnew.Text, (decimal)Session["codsoc"], (string)Session["typtie"], (string)Session["login"], boxTitre.Text, boxNewtxt.Text, " ", ToolBox.DateStringToGnx(boxDatdeb.SelectedDate), ToolBox.DateStringToGnx(boxDatfin.SelectedDate), boxTypdes.SelectedValue);
  141.  }
  142. }
  143. }


 
=> Sur le "btnSave_Click" ça marche pas bien (new créée ou modifiée, mais liste non rafraîchie), alors que sur le "btn_Newnew_Command" ou "NewLinkBtn_Command" ça marche bien (données du forumlaire mises à jour)...

Message cité 1 fois
Message édité par Arjuna le 14-03-2006 à 10:51:15
mood
Publicité
Posté le 14-03-2006 à 10:46:21  profilanswer
 

n°1325252
alien_nan
Posté le 14-03-2006 à 17:19:39  profilanswer
 

Arjuna a écrit :

J'ai une page.
 
...


 
A mon sens, tu devrais avoir une methode qui fasse la requete et le bind de ta liste de liens
et ds ton evenement save, a la fin, tu relances la methode de bind de ta liste de lien non ?

n°1325407
Arjuna
Aircraft Ident.: F-MBSD
Posté le 14-03-2006 à 19:46:45  profilanswer
 

Hmmm, de mémoire, ça ne fait rien.
En fait, le "save" semble se lancer une fois la page finie de générer. Et c'est justement mon problème.
 
Testerai demain.

n°1325623
alien_nan
Posté le 15-03-2006 à 09:22:14  profilanswer
 

Arjuna a écrit :

Hmmm, de mémoire, ça ne fait rien.
En fait, le "save" semble se lancer une fois la page finie de générer. Et c'est justement mon problème.
 
Testerai demain.


 
je veux dire ds ta proc btnsave_click (désolé pour le manque de precision), tu as ta commande qui fait ta sauvegarde...juste apres appelles ta methode qui fait le bind / rechargement de tes liens (dans la m procedure)

n°1326509
Arjuna
Aircraft Ident.: F-MBSD
Posté le 16-03-2006 à 10:13:04  profilanswer
 

That just works ! :love: :bounce: :pt1cable:
 
Comprends pas pkoi d'habitude ça marche pas... Maybe c'est pas le même problème que d'habitude :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [ASP.NET] Mon éternel problem de refresh...

 

Sujets relatifs
[ASP.Net] . Impossible de tester ma pageQuel bouquin pour apprendre le C#/.NET 2.0 venant du C++
[ASP.NET] Récuperer les données d'un formulaire généré en jsASP - HTML récupéré data HTML dans pages .ASP
[VB.NET] newb... réalisations de diagrammes[VB.NET] Save attachment with VB.NET 2005
[.NET & COM] Gérer Excel à partir de .NET 2005problem avec attachMovie
Plus de sujets relatifs à : [ASP.NET] Mon éternel problem de refresh...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR