2010-07-13 6 views

Répondre

8

Pour faire une postback via JavaScript, vous pouvez appeler le côté serveur suivant pour créer le code JavaScript pour vous:

string postBackJavascript = Page.GetPostBackEventReference(yourControl); 

Cela renverra le code JavaScript __doPostBack comme une chaîne, et vous aurez besoin lieu sur votre page jointe à quelque chose ou vous pouvez appeler le __doPostBack directement sur votre propre avec:

__doPostBack(yourControlId,''); 

Si vous faites vous-même et ne pas utiliser Page.GetPostBackEventReference alors assurez-vous d'obtenir le ClientID pour le contrôle qui a déclenché la validation, comme:

__doPostBack('<%= yourControl.ClientID %>',''); 

EDIT: Après relisant votre question, vous ne dites pas que vous vouliez déclencher le postback basé sur un contrôle ASP.NET, vous pourriez ne pas être même en utilisant une ASP.NET contrôle donc dans ce cas si vous voulez juste faire une postback de vanille que vous pouvez faire:

document.forms[0].submit(); 
+0

bien puisque vous avez demandé .. je suis en train de soumettre en utilisant un bouton ASP.Net. maintenant je ne peux pas obtenir le bouton pour ne pas soumettre. J'ai le OnClientClick = "validate(); return false;" mais ne semble pas fonctionner. Des idées?? – bill

+0

@bill cela devrait fonctionner ... essayez de supprimer le 'validate()' et voyez si juste 'return false;' fonctionne. Mon intuition est que vous faites quelque chose dans le 'validate()' qui cause ce problème parce qu'il semble correct. Peut-être commencer une autre question et inclure votre code 'validate()'. – Kelsey

+0

Vous pouvez avoir des problèmes pour annuler le comportement du bouton lorsque les événements sont empilés. Ainsi, le postback qui était à l'origine se déclenche avant votre javascript. Vous devez donc d'abord effacer l'événement original avant de mettre le vôtre. Sinon, le bouton sera toujours soumis. – Simon

3

Si vous souhaitez publier, vous pouvez utiliser __doPostBack() que ASP.NET a mis dans le <form>. Jetez un oeil à ce link. Si vous souhaitez soumettre un autre formulaire, appelez le .submit() sur l'élément de formulaire.

3

Il devrait être aussi simple que

document.forms[0].submit(); 

Fournir d, vous avez seulement un formulaire sur la page, ou vous devez utiliser le nom du formulaire au lieu de l'index 0.