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 sous Web form


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Analyste programmeur
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut MessageBox sous Web form
    bonjour,

    Je réalise un petit Webform, (C# , ASP.NET)

    Et je voudrai controler un champ texte côté serveur (je sais qu'il faut éviter mais ) etsui vant ce controle , afficher des MessageBox seulement étant sous Webform je ne peux faire un using de System.Windows.Forms .
    Je sais que je pourrai utilisé des alert en javascript coté client mais ce n'est pas ce que je veux . je voudrai pouvoir utilisé des message box ou un équivalent
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Pour faire apparaître un messagebox côté client, tu seras obligé de passer par Javascript.

  3. #3
    Membre du Club
    Profil pro
    Analyste programmeur
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut
    Ok merci pour l'info par contre c'est plus limitée que je le pensais la combinaison Csharp ASP.NET

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ben non, pas vraiment... une MessageBox, ça s'affiche chez le client. ASP.NET s'occupe surtout de ce qui se passe sur le serveur.
    Et la classe MessageBox de Windows Forms est juste un wrapper d'une fonction Win32, je vois mal comment on pourrait l'utiliser pour afficher quelque chose sur le poste client...

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par tomlev Voir le message
    ben non, pas vraiment... une MessageBox, ça s'affiche chez le client. ASP.NET s'occupe surtout de ce qui se passe sur le serveur.
    Et la classe MessageBox de Windows Forms est juste un wrapper d'une fonction Win32, je vois mal comment on pourrait l'utiliser pour afficher quelque chose sur le poste client...
    Surtout si ce dernier ne se trouve pas sous Windows.

  6. #6
    Membre du Club
    Profil pro
    Analyste programmeur
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut
    j'aimerai suivre vos conseil mais en fait le problème c'est que j'ai deja essayé d'inclure un script javascript dans une page ASP et ça me bloquait il ne me reconnaissait pas mes instructions javascript:
    <asp:Button id="Button1" style="Z-INDEX: 104; LEFT: 264px; POSITION: absolute; TOP: 160px" runat="server" Width="177px" Height="32px" Text="Valider" OnClick="effacer()">

    <script language="JavaScript">
    function effacer(){
    alert("Vous avez cliqué sur le bouton Effacer");
    }
    </script>
    </asp:Button>

    et il me dit CS0117: 'ASP.WebForm1_aspx' ne contient pas de définition pour 'effacer'

    Etes vous sur qu'il n'existe pas un moyen propre au C# pour faire des fenetre type pop up a moins qu'il y ait une solution au javascript
    Merci d'avance

  7. #7
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Ce n'est pas sur le OnClick que tu dois mettre ça, mais sur le OnClientClick comme il s'agit d'un contrôle ASP.

  8. #8
    Membre confirmé Avatar de bartoumi
    Profil pro
    Inscrit en
    Février 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 178
    Par défaut
    response.write("<script language='javascript'>alert('bonjou');</script>");

  9. #9
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    Sinon tu peux faire un addAttributes sur ton bouton. pour savoir comment cela fonctionne fait une recherche dans google.

  10. #10
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Par défaut
    sinon tu peux utiliser AjaxControlToolkit, si ton site utilise la technologie Ajax.

  11. #11
    Membre confirmé Avatar de bartoumi
    Profil pro
    Inscrit en
    Février 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 178
    Par défaut
    non c'est bien sur le OnClick
    pourquoi tu n'utilise pas les Page.RegisterStartupScript?

  12. #12
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Citation Envoyé par bartoumi Voir le message
    non c'est bien sur le OnClick
    pourquoi tu n'utilise pas les Page.RegisterStartupScript?
    L'événement Javascript est le onclick, mais dans le contrôle serveur <asp:button, la propriété est OnClientClick et pas onClick !

  13. #13
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    Sinon j'ai trouvé ca je sais plus où...

    A mettre dans un fichier "MessageBox.cs" dans App_Code par exemple :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Collections;
    using System.Text;
     
    /// <summary>
    /// Création d'une classe MessageBox
    /// </summary>
     
    public class MessageBox
    {
        private static Hashtable m_executingPages = new Hashtable();
     
        private MessageBox() { }
     
        public static void Show(string sMessage)
        {
            // If this is the first time a page has called this method then
            if (!m_executingPages.Contains(HttpContext.Current.Handler))
            {
                // Attempt to cast HttpHandler as a Page.
                Page executingPage = HttpContext.Current.Handler as Page;
     
                if (executingPage != null)
                {
                    // Create a Queue to hold one or more messages.
                    Queue messageQueue = new Queue();
     
                    // Add our message to the Queue
                    messageQueue.Enqueue(sMessage);
     
                    // Add our message queue to the hash table. Use our page reference
                    // (IHttpHandler) as the key.
                    m_executingPages.Add(HttpContext.Current.Handler, messageQueue);
     
                    // Wire up Unload event so that we can inject 
                    // some JavaScript for the alerts.
                    executingPage.Unload += new EventHandler(ExecutingPage_Unload);
                }
            }
            else
            {
                // If were here then the method has allready been 
                // called from the executing Page.
                // We have allready created a message queue and stored a
                // reference to it in our hastable. 
                Queue queue = (Queue)m_executingPages[HttpContext.Current.Handler];
     
                // Add our message to the Queue
                queue.Enqueue(sMessage);
            }
        }
     
     
        // Our page has finished rendering so lets output the
        // JavaScript to produce the alert's
        private static void ExecutingPage_Unload(object sender, EventArgs e)
        {
            // Get our message queue from the hashtable
            Queue queue = (Queue)m_executingPages[HttpContext.Current.Handler];
     
            if (queue != null)
            {
                StringBuilder sb = new StringBuilder();
     
                // How many messages have been registered?
                int iMsgCount = queue.Count;
     
                // Use StringBuilder to build up our client slide JavaScript.
                sb.Append("<script language=\"javascript\" type=\"text/javascript\">");
     
                // Loop round registered messages
                string sMsg;
                while (iMsgCount-- > 0)
                {
                    sMsg = (string)queue.Dequeue();
                    sMsg = sMsg.Replace("\n", "\\n");
                    sMsg = sMsg.Replace("\"", "'");
                    sb.Append(@"alert( """ + sMsg + @""" );");
                }
     
                // Close our JS
                sb.Append(@"</script>");
     
                // Were done, so remove our page reference from the hashtable
                m_executingPages.Remove(HttpContext.Current.Handler);
     
                // Write the JavaScript to the end of the response stream.
                HttpContext.Current.Response.Write(sb.ToString());
            }
        }
    }
    EDIT : Je savait bien que j'oubliais quelque chose

    Utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageBox.Show(string message)
    Seul petit défaut : la page n'est plus HTMLement valide... En effet il rajoute la balise <script></script> APRES la balise </html>

Discussions similaires

  1. Pagination : numéroter sous la forme (1/4)
    Par audreyb dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 01/03/2013, 11h59
  2. crystal report sous visual studio 2005 avec web form
    Par beabea dans le forum ASP.NET
    Réponses: 7
    Dernier message: 19/04/2007, 17h13
  3. [DOM] Créer un fichier XML sous une forme bien précise
    Par LaseLiep dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 09/06/2005, 18h05
  4. [VS.NET] Ajout de nouveaux web forms dans la palette
    Par subhuman dans le forum Visual Studio
    Réponses: 12
    Dernier message: 15/04/2005, 09h11
  5. Formater une durée sous la forme Heure:Minute:Seconde
    Par marsupile dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2004, 23h29

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