IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

un souci durant le rafraichissement d'une page web ASP.net..


Sujet :

ASP.NET

  1. #1
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut un souci durant le rafraichissement d'une page web ASP.net..
    Bonjour mes amis,

    en fait j'ai deux questions là concernant le rafraichissement d'une page web avec asp.NET:

    1- la première cocerne le rafraichissement automatique d'une page (disons par interval de quelques secondes entre chaque rafraichissement et ce pour afficher des données provenant d'une table sql qui changent tout le temps). comment peut-on provéder (le code à rajouter) ??

    2- la seconde concerne le rafraichissement d'une page en cliquant sur le bouton "Actualiser" celà entraine l'enregistrement de données en double sur une table sql si la page avait déjà des données ecrites dessus.comment peut-on procéder (le code à rajouter pour éviter celà c'est à dire si l'utilisateur ne clique pas sur le bouton valider sur sa page web pour enregistrer ses données, rien ne ce passe même en cliquant sur le bouton "Actualiser")..

    merci à vous

    cdt

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    pour la première question, c'est du coté de javascript ou des entetes (section head du document html) que tu peux te tourner, pas dans le code behind.

    ainsi tu peux ajouter le javascript dans le head

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <html>
      <head>
        <!-- ... ici toute les déclarations, title, meta, styles, link... -->
        <script type="text/javascript">
          function reload() {
            location.href="#";
          }
     
          window.onload = function () { setTimeout("reload()", 30000); };
        </script>
      </head>
      <body>
        <!-- ton document normal -->
      </body>
    </html>
    30000 est le nombre de millisecondes avant rechargement de la page soit ici 30s.
    il te suffit de changer la durée.

  3. #3
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    merci mon ami,

    je l'ai essayé et ça fonctionne parfaitement.

    pour le 2ème point je ne sais pas quoi faire, est-il possible de faire un test sur la BD avant de valider la saisie (même données enregistrés une seconde fois), si t'as une idée sur le comment s'y prendre (exemple de code ).

    merci encore.

  4. #4
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Sinon, pour le refresh, tu peux te tourner vers les composants Ajax, si la version de ton framework te le permet. Ca evite de manipuler du javascript (même si à la fin, c'est du javascript que tu aura !)

    Explicite le deuxieme point, j'a du mal à comprendre l'enchainement d'actions que tu souhaite faire / eviter...
    (un pti diagramme de séquence si tu connais uml ? sinon tant pis on s'en passera :-p )

  5. #5
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Resalut mon ami,

    je te remercie pour tes si précieux conseils, en parlant d'ajax, comment puis-je savoir si ma config server supporte ça ou pas ?? j'ai déjà effectué un test une fois sur mon server (équipé de windows 2000 server avec .NET 2.0 installé dessus) il n'accepte pas de composants ajax sur les pages ASP.Net (erreur lors de l'execution). t'as une idée de quoi il s'agit et comment y remédier??, merci


    voilà je vais être plus explicite par rapport au 2ème point:

    j'ai une page web en ASP.NET qui contient 02 obejts (TextBox) qui pointent sur une table Sql, et aussi un bouton "Valider" pour valider la saisie.

    quand je fais la saisie et je clique sur ce bouton, tous va bien, je vérifie sur ma table Sql je trouve que les informations ont bel et bien été enregistrées.

    cepedant si prends ma page sur laquelle j'ai effectué cette saise (la pge contient toujours les informations saisie sur les deux TextBox) et si je clique sur le bouton "Actualiser" du navigateur internet, les même informations sont reportées une seconde fois sur ma table (c'est comme si j'ai recliqué une seconde fois sur le bouton "Valider") et là j'ai un doublon que je ne veux pas avoir sur ma table sql.

    voilà mon souci, comme dois-je m'y prendre pour que l'actualisation ne fasse pas de doublon et que seul le bouton "Valider" autorise ça (la saisie je veux dire).

    merci à toi

  6. #6
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Deux choses à dire avant tout :

    - N'utilise pas le bouton actualiser
    - Effectue des contrôles sur l'insertion en base pour entre autre interdire les doublons (simplement vital pour moi)

    Je pense que cela vient du fait que, quand tu fait "actualiser", il envoie à nouveau la demande précédente, qui dans ton cas a été le bouton "valider".

    Pour rafraichir la page, utilise soit le JS, soit Ajax (peut être utile : http://asp.net/ajax/ )

  7. #7
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Ok mon ami,

    je vais voir pour le truc du contrôle à appliquer sur la BD.

    à propos d'ajax, as-tu une idée pourquoi ça ne fonctionne pas sur ma machine avec Win server 2000 ?? parcontre ça fonctionne parfaitement bien sur ma machine locale avec Win XP . (tous deux avec Framework 2.0 embarqué dessus).

    ça a un lien avec la version de IIS ?? (5.0 sur win 2000, 5.5 sur XP)

    merci

  8. #8
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    hum.. là je ne peux t'aider.. Cherche du coté des forum Ajax, de la msdn, des sites officiels microsoft...

  9. #9
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    ok , je vais voir ça.

    une autre question si possible, ma page en comprte comme tu le sais des TextBox et un bouton "Valider".

    comment dois je faire pour forcer l'utilisateur à cliquer sur le bouton "valider" pour pouvoir enregistrer ses données et ne pas le faire via le clavier "bouton Entrtée".

    merci à toi

  10. #10
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Tu devrais chercher un peu par toi même...

    En regardan tle spropriétés de la textbox, tu aurais vite trouvé "CausesValidation" : place à false et tu as ce que tu veux!

  11. #11
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Ce n'est pas l'attribut CauseValidation mais ClickOnEnterKey

    CauseValidation spécifie si au moment du clic tu veux faire la vérification qu'il pourrait y avoir si tu as des composants "Validation"

  12. #12
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Bonjour les amis,

    merci pour ces conseils seulement pour l'attribut en question "ClickOnEnterKey" comment l'utiliser, je ne l'ai jamais fait.

    une question très cruciale celle qui va suivre
    je veux faire un test une fois l'utilisateur clique su bouton "Valider", le test consiste a vérifier sur la table Sql si les informtions saisies existent déjà sur ma BD ou pas.
    si oui : afficher un message indiquant que l'infos existe déjà, ce qui annule cette saisie.

    si non: la validation passe normale sans souci.

    ci-dessous mon bout de code en C# qui permet d'écrire, seulement je sais pas comment rajouter la partie qui teste avant d'écrire, je sais qu'il s'agit d'un Data Reader mais c'est un peu flou pour moi.

    <!--

    // Déclaration de l'objet de connexion
    System.Data.SqlClient.SqlConnection oConnection;

    // Création de l'objet de connexion
    oConnection = new System.Data.SqlClient.SqlConnection();

    // Paramétrage de la chaîne de connexion
    string sConnectionString;
    sConnectionString = "Server=nom du serveur;Initial Catalog=ma DB;Persist Security Info=True;User ID=user;Password=pass";

    oConnection.ConnectionString = sConnectionString;

    // Connexion à la base de données
    oConnection.Open();

    // Déclaration de l'objet SqlCommand et de la requête SQL
    System.Data.SqlClient.SqlCommand oCommand;
    string sSQL;

    sSQL = "INSERT INTO [test](Wos,Nombre)";

    sSQL = sSQL + " VALUES('" + ListShop.Text + "','" + TextBoxNombre.Text + "')";

    // Création de l'objet SqlCommand
    oCommand = new System.Data.SqlClient.SqlCommand(sSQL, oConnection);

    // On appelle la méthode ExecuteNonQuery pour éxécuter notre commande
    oCommand.ExecuteNonQuery();

    // On écrit notre message de confirmation
    ResultatLabel.Text = "Informations enregistrées avec succès";



    // Fermeture de la connexion
    oConnection.Close();


    -->

  13. #13
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    protected bool CheckBase(Wos,Nombre)
     {
    //Nbre de lignes affectées
    bool bValid = true 
    // Déclaration de l'objet de connexion
    System.Data.SqlClient.SqlConnection oConnection;
    // Création de l'objet de connexion
    oConnection = new System.Data.SqlClient.SqlConnection();
    // Paramétrage de la chaîne de connexion
    string sConnectionString;
    sConnectionString = "Server=nom du serveur;Initial Catalog=ma DB;Persist Security Info=True;User ID=user;Password=pass";
    oConnection.ConnectionString = sConnectionString;
    // Connexion à la base de données
    oConnection.Open();
    // Déclaration de l'objet SqlCommand et de la requête SQL
    System.Data.SqlClient.SqlCommand oCommand;
    string sSQL;
    sSQL = "SELECT Wos,Nombre from  [test] where wos = "+ListShop.Text+" and Nombre = " +TextBoxNombre.Text ;
     
    // Création de l'objet SqlCommand
    oCommand = new System.Data.SqlClient.SqlCommand(sSQL, oConnection);
    // On appelle la méthode ExecuteNonQuery pour éxécuter notre commande
     if(oCommand.ExecuteNonQuery() > 0 )
     bValid = false;
     
    return bValid 
    }
     
    if(CheckBase(ListShop.Text, TextBoxNombre.Text ))
        Insert();
    Ce n'est qu'un exemple, ya dix milles façon de faire

  14. #14
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    merci mo ami,

    je vais l'essayé et je te rend la réponse, mais juste un petite précison de ta part, le bloc d'instruction qui permet d'écrire dans la base (celui que je t'ai envoyé) je le met à quel niveau ??

    merci encore

  15. #15
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(CheckBase(ListShop.Text, TextBoxNombre.Text ))
        Insert(); <== a ce niveau la

  16. #16
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    d'accord,

    je vais voir ça et je te confirme par la suite.

    mais il faut que tu sache que mon bloc d'instruction (insertion de donnée) est compris dans une :

    protected void BtnValidation_Click(object sender, EventArgs e)

    si je met le bout ed code que tu m'as envoyé à l'interieur ça crée des problèmes.

    qu'en penses-tu, je vien de faire juste un test, y a plein d'erreur lors de la compilation.

    merci

  17. #17
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    ce que tu dois mettre dans ton bloc d'instruction ( ton évènement ) c'est
    juste le code qu'il y a en bas. le reste, c'est des méthodes que tu mets dans ta classe mais pas dans ton évènement .
    N'oublies pas de faire des vérifications du contenu de tes champs texte.
    Toi tu débutes
    Mais surtout tu comptes trop sur les gens, réfléchis un peu avant de poser des questions
    Je ne vais pas te coder ton truc non plus, faut que tu apprennes :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(CheckBase(ListShop.Text, TextBoxNombre.Text ))
        Insert(); <== a ce niveau la

  18. #18
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    c'est sûr que je débute là-dessus, même le code d'insertion de donnée que je t'ai fait part ça m'a vraiment cassé la tête pour à peu prés le comprendre.

    j'ai toujours des lacunes en ce qui est des Méthodes et les classes, mais bon je fais de mon mieux.

    mais ton aide me sera très préciseuse et je me baserai dessus pour comprendre le comment et le pourquoi d'une telle ou telle déclaration.

    je sais que je suis le casse tête en personne mais bon, de l'aide de chez les pros je ne vais pas dire non

    je ne demande pas de me coder le tout mais donne moi une piste comment m'y prendre et à quel niveau.

    merci

  19. #19
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    Ben déja il te faut comprendre la POO ( Programmation Orientée objet ) donc documentes toi dessus et ensuite il faut que tu es une bonne connaissance du Framework mais ça ça vient à force de l'utiliser.
    Il faut que msdn soit ton meilleur ami , comprendre ce que font les méthodes proposés par le framework pour les utiliser

  20. #20
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Merci pour tout cher ami,

    c'est juste un petit boulot que je fais dans mon travail et pour gagner un peu de temps j'ai dû venir te casser la tête, mais saches que je me documente dès que j'ai du temps , c'est pas évident mais bon je fais ce que je peux, t'as un tuyau bien claire concernant la POO qui pourrait m'avancer rapidement ?? car je peux accéder en parallèle à msdn.

    merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/05/2009, 10h12
  2. Comment faire des frame dans une page en ASP.Net
    Par Jean-Claude Dusse dans le forum ASP.NET
    Réponses: 6
    Dernier message: 04/02/2009, 20h45
  3. probléme d'execution d'une page web asp.net
    Par grungy-soul dans le forum ASP.NET
    Réponses: 12
    Dernier message: 15/10/2008, 11h54
  4. Réponses: 5
    Dernier message: 08/04/2008, 23h26
  5. Réponses: 3
    Dernier message: 18/09/2007, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo