2009-09-25 8 views
1

Dans asp.net en utilisant C# .net dans le back end, après avoir cliqué sur Ajouter, j'ajoute le stock et ferme la fenêtre (que j'ai ouverte en utilisant window.open) en utilisant Javascript. Bien que cela fonctionne bien dans d'autres navigateurs, [dans MSIE] si je continue à cliquer sur le bouton Ajouter, il ajoute plusieurs entrées de stock. C'est un comportement vraiment bizarre. Toute idée sur comment je peux surmonter cela.Multiple Add in IE

AddStock(sessionID, stock,perms); 
string script = "window.parent.closeIFrame();"; 
ClientScript.RegisterStartupScript(this.GetType(), "close", script, true); 

closeIFrame() is defined on the parent page. 

Répondre

1

j'ai eu une façon de cela, nous pouvons désactiver le bouton clic this is the link to a beautiful article for this

+0

personnes sans javascript activé peut encore cliquer plusieurs fois. –

+0

ya mais nous nous assurons que tous les utilisateurs ont Javascript activé puisque c'est le produit qui doit être utilisé par les entreprises informatiques. –

0

Si vous voulez parler en cliquant sur Ajouter plusieurs fois juste après eachother, vous devrez faire la validation côté serveur pour vous assurer que « AddStock » ne sera pas appelé à plusieurs reprises. C'est un comportement par défaut, car vous pouvez faire plusieurs POST au backend, et la requête ne sera pas tuée en en faisant une autre.

modifier Vous voudrez peut-être à quelque chose comme ça,

if(((TimeSpan)(DateTime.Now - (Session["LastAddedStock"] ?? DateTime.Min)).TotalSeconds < 15) 
    //don't proceed, as the last addStock was less than 15 secs. ago 
else 
    //Do Add Stock 
    Session["LastAddedStock"] = DateTime.Now; 
0

Comme je peux voir la procédure AddStock (...) est sous la forme de l'enfant. Donc, pourquoi vous devez appeler la fonction parent pour fermer le formulaire enfant, quand vous pouvez simplement appeler javascript dans le même formulaire enfant: close()?

Questions connexes