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 :

MessageBox de confirmation en ASP.Net


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Par défaut MessageBox de confirmation en ASP.Net
    Bonjour à tous,

    Ce sujet a été posté plusieurs fois mais aucun ne correspond à mes attentes. Je me permet donc de poster un nouveau message

    Mon problème est le suivant :
    Je suis en pleine réécriture d'un programme qui tourne sur des terminaux mobiles Windows CE vers de l'ASP.Net pour voir laquelle de ces 2 solution est la meilleur en terme de performances.
    Dans mon programme Windows CE, j'ai inséré dans quelques méthodes de classes des messageBox de toute sorte (alerte, confirmation). Je sais que cela ne se fait absolument pas mais il y a des fois où ça sert...
    Mais en ASP.Net, il y a un problème : les messageBox n'existent pas! Il faut intégrer du javascript (ce que je trouve inutile car on fait du .Net pour justement éviter d'intégrer d'autres langages à coté ==> c'était ma partie coup de gueule ). Pour les messageBox classique (c-à-d du type alerte), pas de problème, ça se fait en une ligne en javascript et c'est pas gênant.. Mais il y a des moments où j'affiche des messages de confirmation et je dois savoir si l'utilisateur a choisi "OUI" ou "NON".

    Pourquoi cela pose problème? Tout simplement parce que dans mes méthodes (et même dans du code qui s'exécute au click d'un bouton) je ne fais pas que d'afficher un message. En effet, je récupère des informations dans une BDD et selon ce que je récupère, j'affiche un message de confirmation. Ensuite, je récupère YES/NO et la méthode continue à faire ce qu'elle dois faire ensuite (et il y a pas mal de chose à faire ensuite...)

    Ce que propose la plupart des gens, c'est d'appeler une fonction JS DIRECTEMENT après le click d'un bouton (donc en fait, dans le bouton, il n'y a pas de code). C'est pas du tout ce que je veux! En gros, je ne veux pas faire appel aux événements "onclick" dans mon code MyForm.aspx et passer par les objets .Net (si possible) dans MyFrom.aspx.vb ou appeler le javascript dynamiquement avec Response.Write. Mais là encore, je ne sais pas comment appeler un script personnalisé

    Je tiens à préciser, que ma formation initiale est l'informatique mobile, et que le web, c'est un peu du chinois pour moi (à part WebDev, c'est à part )

    Merci d'avance pour vos réponses!!

  2. #2
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Il n'y a pas que des vérités dans tout ce que tu dis.

    En recherche Google (mots recherchés : asp.net confirm), tu trouves extremement facilement le moyen d'empêcher le traitement sur le server à la suite d'un message jscript confirm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    return confirm('Etes-vous de vouloir passer à la suite?');
    
    J'ai l'impression que tu souhaites envisager un traitement étape par étape. Jettes un coup d'oeil au contrôle multiview, c'est assez puissant.

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Par défaut
    Citation Envoyé par predalpha Voir le message
    J'ai l'impression que tu souhaites envisager un traitement étape par étape. Jettes un coup d'oeil au contrôle multiview, c'est assez puissant.
    Oui, la plupart du temps, c'est du traitement étape par étape que je fais. Et là, je galère, le Web, c'est trop dur pour moi
    J'ai regardé du coté du contrôle Multiview, mais j'ai rien pigé
    J'ai même essayé de coder un bouton caché qui lance le messageBox de confirmation quand j'en ai besoin, mais le problème est que je n'arrive pas à faire un clic par programmation (simuler le clic). J'ai essayé "monBoutonCaché.Click" mais ça marche pas. Alors apparemment, on peut le faire en javascript mais là aussi, il faut que je lance ce script dans mon code-behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monBoutonCaché').click();
    Donc, j'ai fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write("<script>document.getElementById('butsubmit').click();</script>");
    MAIS ça ne fonctionne pas

    Je vous montre un bout de code que j'ai fais pour tester cela dans le code-behind: ATTENTION! C'EST DU DELPHI PRISM mais ça change rien au problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    method U_SocUser.BTN_ANNULER0_Click(sender: System.Object; e: System.Web.UI.ImageClickEventArgs);
    begin
      butsubmit.Attributes.Add("onclick","confirmSubmit()");
      Response.Write("<script>document.getElementById('butsubmit').click();</script>");
      if hide.value = "oui" then
        Response.Write("<script>alert(""Oui"")</script>")
      else
      Response.Write("<script>alert(""Non"")</script>");
     
      hide.value := "";
    end;
    Et voici le javascript dans ma page aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script language="javascript"> 
        function confirmSubmit()
        {  
           var msg = "Etes vous sûr de vouloir enregistrer vos données?"; 
           if (confirm(msg))
           {
               document.getElementById("hide").value = "oui";
           }
        }
        </script>
    "hide" correspond à ma variable cachée qui contient le résultat de mon messageBox de confirmation.


    Voilà, merci pour votre aide.

  4. #4
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Le pb dans ton exemple est que tu attribue le 'confirm' pendant le traitement du clic de ton bouton. Du coup c'est trop tard, tu ne verras le message qu'au rechargement de la page.

    Pour faire simple au plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ... Page Load ...
     
    if page.ispostback = false
     
    monbouton.onclientclick = "return confirm('Etes vous sûr de vouloir enregistrer vos données?');"
     
    'si le code ci-dessus ne passe pas, essaies celui-ci
    'monbouton.attributes.add("onclick","return confirm('Etes vous sûr de vouloir enregistrer vos données?');")
     
    end if

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Par défaut
    Je vais finalement passer par l'objet session car mon application Web va être utilisée par plusieurs utilisateur simultanément, et j'ai besoin de renseigner pas mal de variable selon l'utilisateur, dont des objets...

    Comment peut-on utiliser un objet et ses méthodes dans l'objet session?
    1- Doit-on passer par un objet intermédiaire?
    OU
    2- Y a-t-il un moyen d'utiliser directement l'objet (et ses méthodes, je m'en sert beaucoup) déclaré dans la variable session?

    Pour ma part, je vais essayer la solution 1 car elle me parait faisable mais je ne sais pas si c'est la meilleure solution...

    Merci de m'aider, ça serait cool

Discussions similaires

  1. [Télétravail] Ingénieur d'étude Confirmé C# / ASP.Net / SQLServer / SSIS / SSAS / SSRS
    Par nono27200 dans le forum Demandes
    Réponses: 0
    Dernier message: 04/03/2011, 14h28
  2. Réponses: 0
    Dernier message: 10/12/2008, 16h13
  3. Messagebox.Show() équivalent en ASP.NET ?
    Par DranDane dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/05/2008, 17h03

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