2009-11-26 7 views
0

Je ne travaille pas une exception où je dois Sheo messageBoxboîte de message

mon messagebox fonctionne sur localhost mais pas sur le serveur

catch (Exception) 
     { 

      MessageBox.Show("Machine Cannot Be Deleted", "Delete from other Places first", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 

Comment puis-je faire ce travail ... merci

est-il une autre façon de le faire .... s'il vous plaît aider .. Je sais que c'est un petit problème, mais il doit être fait ...

+0

Vouliez-vous dire que cette question soit étiquetée asp.net? Vous ne pouvez pas utiliser MessageBox.Show dans asp.net votre meilleur pari est d'utiliser RegisterClientSideScript pour enregistrer du javascript qui affiche une alerte .... Je ne voudrais pas encourager cela pour la gestion des exceptions cependant. –

+0

Vous devez utiliser l'espace de noms System.Windows.Forms –

Répondre

8

Vous ne pouvez pas utiliser un formulaire Windows MessageBox en ASP. NET depuis il fonctionne du côté serveur, ce qui le rend inutile pour le client.

Examinez l'utilisation d'une alerte Javascript ou d'un autre type d'erreur de validation. (Peut-être avoir un contrôle caché avec votre message d'erreur et basculer sa visibilité dans le bloc catch ou utiliser Response.Write pour une alerte Javascript).

Quelque chose comme ça (non testé):

Response.Write("<script language='javascript'>window.alert('Machine Cannot Be Deleted, delete from other places first.');</script>"); 
+0

comment puis-je travailler avec les boîtes de message javscript ... y at-il un exemple similaire à ce dont j'ai besoin ... merci – user175084

+0

Alertes de base: http: //www.c-point. com/javascript_tutorial/javascript_message_boxes.htm Vous avez juste besoin de trouver un moyen de les montrer dans une page. Vous pouvez écrire directement dans la réponse comme je l'ai montré, ou utiliser la méthode RegisterClientScriptBlock dans la classe ScriptManager. Dans le cas où l'utilisateur a javascript désactivé, je recommande de basculer un message d'erreur sur la page elle-même comme une solution de repli. – Brandon

0

Vous devez utiliser l'espace de nomsSystem.Windows.Forms et vous pouvez utiliser la propriété de boîte de message

par exemple

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 

**using System.Windows.Forms;** 

    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      MessageBox.Show("Machine Cannot Be Deleted", "Delete from other Places     
      first", MessageBoxButtons.OK, MessageBoxIcon.Error); 

     }  
    } 

Parmi les autres solutions (en dehors de l'une Mr.Brandon a proposé)

a) utiliser JavaScript

par exemple

Response.Write("<script>alert('Machine Cannot Be Deleted')</script>"); 

b) Faire une fonction personnalisée qui fonctionne comme une boîte de message

par exemple

protected void Page_Load(object sender, EventArgs e) 
    { 
     MyCustomMessageBox("Machine Cannot Be Deleted"); 
    } 

    private void MyCustomMessageBox(string msg) 
    { 
     Label lbl = new Label(); 
     lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert('" + msg + "')</script>"; 
     Page.Controls.Add(lbl); 
    } 

Hope this helps

Questions connexes