Arjuna Aircraft Ident.: F-MBSD | 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 :
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Web;
- using System.Web.SessionState;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.HtmlControls;
- namespace bci
- {
- /// <summary>
- /// Summary description for WriteNews.
- /// </summary>
- public class WriteNews : System.Web.UI.Page
- {
- private Queries commander;
- protected System.Web.UI.WebControls.TextBox boxNumnew;
- protected System.Web.UI.WebControls.TextBox boxTitre;
- protected System.Web.UI.WebControls.Calendar boxDatdeb;
- protected System.Web.UI.WebControls.Calendar boxDatfin;
- protected System.Web.UI.WebControls.ListBox boxTypdes;
- protected System.Web.UI.WebControls.Button btnSave;
- protected System.Web.UI.WebControls.LinkButton btnNewnew;
- protected System.Web.UI.WebControls.TextBox boxNewtxt;
- protected System.Web.UI.WebControls.Repeater newsList;
- private void Page_Load(object sender, System.EventArgs e)
- {
- commander = new Queries(string.Format((string) Application["cnxString"], (string) Application["dbLogin"], (string) Application["dbPass"], (string) Application["dbTNS"]));
- // Ajouter le code pour bloquer si Session vide !
- if (Session.Count == 0 || Session["login"] == null || Session["typtie"] == null || Session["codsoc"] == null || Session["password"] == null)
- {
- Session.Clear();
- Response.Redirect("Default.aspx", true);
- }
- if (!commander.RunTestQuery())
- {
- Session.Clear();
- Response.Redirect("Default.aspx", true);
- }
- if (!habilitation.getHabilitation((string)Session["habilitation"], habilitation.Habilitations.writeNews))
- {
- Response.Redirect("Collection.aspx", true);
- }
- newsList.DataSource = commander.LoadNewsForAuthor((decimal)Session["codsoc"], (string)Session["typtie"], (string)Session["login"]);
- newsList.DataBind();
- commander.webLog(Session["codsoc"], Session["typtie"], Session["login"], Request.ServerVariables["http_host"], Request.FilePath, Session["sigdep"], Session["codpro"]);
- }
- private void Page_Unload(object sender, System.EventArgs e)
- {
- try{commander.Close();}
- catch {};
- commander = null;
- }
- protected void NewsList_DataBound(object sender, RepeaterItemEventArgs e)
- {
- if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
- {
- DataRowView dr = ((DataRowView) e.Item.DataItem);
- if (dr != null)
- {
- Label newLinkTxt = ((Label) e.Item.FindControl("txtTitre" ));
- LinkButton newLinkBtn = new LinkButton();
- newLinkBtn.Text = ((string) dr["newtit"]).ToString();
- newLinkBtn.CommandName = "numnew";
- newLinkBtn.CommandArgument = ((decimal) dr["numnew"]).ToString();
- newLinkBtn.Command += new CommandEventHandler(NewLinkBtn_Command);
- newLinkTxt.Controls.Add(newLinkBtn);
- ((Label) e.Item.FindControl("txtDatdeb" )).Text = ToolBox.DateGnxToString((string) dr["datdeb"], "-" );
- ((Label) e.Item.FindControl("txtDatfin" )).Text = ToolBox.DateGnxToString((string) dr["datfin"], "-" );
- }
- }
- }
- protected void NewLinkBtn_Command(Object sender, CommandEventArgs e)
- {
- if (e.CommandArgument != null)
- {
- DataRow dr = commander.LoadNewsForID(System.Convert.ToDecimal((string)e.CommandArgument)).Rows[0];
- boxNumnew.Text = ((decimal)dr["numnew"]).ToString();
- boxTitre.Text = (string)dr["newtit"];
- if ((string)dr["datdeb"] != " " )
- {
- boxDatdeb.SelectedDate = ToolBox.DateGnxToDate((string)dr["datdeb"]);
- }
- if ((string)dr["datfin"] != " " )
- {
- boxDatfin.SelectedDate = ToolBox.DateGnxToDate((string)dr["datfin"]);
- }
- switch ((string)dr["typdes"])
- {
- case " ":
- boxTypdes.SelectedIndex = 0;
- break;
- case "CLI":
- boxTypdes.SelectedIndex = 1;
- break;
- case "REP":
- boxTypdes.SelectedIndex = 2;
- break;
- default:
- break;
- }
- boxNewtxt.Text = (string)dr["newtxt"];
- }
- }
- protected void btnNewnew_Command(Object sender, CommandEventArgs e)
- {
- boxNumnew.Text = string.Empty;
- boxTitre.Text = string.Empty;
- boxDatdeb.SelectedDate = DateTime.Now;
- boxDatfin.SelectedDate = DateTime.Now;
- boxTypdes.SelectedIndex = 0;
- boxNewtxt.Text = string.Empty;
- }
- #region Web Form Designer generated code
- override protected void OnInit(EventArgs e)
- {
- //
- // CODEGEN: This call is required by the ASP.NET Web Form Designer.
- //
- InitializeComponent();
- base.OnInit(e);
- }
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- this.newsList.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.NewsList_DataBound);
- this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
- this.btnNewnew.Command += new CommandEventHandler(this.btnNewnew_Command);
- this.Unload += new System.EventHandler(this.Page_Unload);
- this.Load += new System.EventHandler(this.Page_Load);
- }
- #endregion
- private void btnSave_Click(object sender, System.EventArgs e)
- {
- 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);
- }
- }
- }
|
=> 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)... |