J'essaye de créer un postback asyncrhone dans ASP.NET en utilisant __doPostBack()
, mais je n'ai aucune idée de comment le faire. Je veux utiliser du JavaScript vanille.
Quelque chose de simple comme un clic sur un bouton peut provoquer le déclenchement de l' __doPostBack()
événement. J'essaie juste d'apprendre comment fonctionne le mécanisme.
c#
javascript
asp.net
postback
Michael Kerute
la source
la source
__doPostBack
n'est pas réellement prise en charge. Si votre page ne contient rien qui déclenche une publication, asp.net peut omettre de définir la__doPostBack
fonction. L'approche prise en charge consiste à appelerClientScriptManager.GetPostBackEventReference
, qui renvoie une chaîne dans le formulaire__doPostBack(...)
et garantit qu'elle__doPostBack
est définie.Réponses:
Vous pouvez essayer ceci dans votre formulaire Web avec un bouton appelé btnSave par exemple:
Et dans votre code, ajoutez quelque chose comme ceci pour lire la valeur et l'utiliser:
Essayez-le et dites-nous si cela a fonctionné pour vous.
la source
C'est également un bon moyen d'obtenir des contrôles côté serveur à publier dans FancyBox et / ou jQuery Dialog . Par exemple, dans FancyBox-div:
JavaScript:
Page d'accueil du serveur:
la source
ClientIDMode="Static"
attribut deMyButton
, afin que ASP ne modifie pas l'ID du bouton.Voici un bref tutoriel sur le
__doPostBack()
fonctionnement.Pour être honnête, je ne l'utilise pas beaucoup; au moins directement. De nombreux contrôles de serveur, (par exemple,
Button
,LinkButton
,ImageButton
, parties duGridView
, etc.) utilisent__doPostBack
comme mécanisme poteau.la source
Je voudrais juste ajouter quelque chose à ce post pour
asp:button
. J'ai essayé clientId et cela ne semble pas fonctionner pour moi:Cependant, obtenir le UniqueId semble être renvoyé au serveur, comme ci-dessous:
Cela pourrait aider quelqu'un d'autre à l'avenir, donc publier ceci.
la source
ClientID
, parce que j'utilisaisClientIDMode = Static
. UtilisationUniqueID
travaillé.Ancienne question, mais j'aimerais ajouter quelque chose: lors de l'appel,
doPostBack()
vous pouvez utiliser la méthode du gestionnaire de serveur pour l'action.À titre d'exemple:
Se déclenchera, sur le serveur:
Je n'ai pas trouvé de meilleur moyen d'obtenir l'argument, donc j'utilise toujours
Request["__EVENTARGUMENT"]
.la source
Comme d'autres l'ont dit, vous devez fournir l'identifiant unique du contrôle à la méthode __doPostback ().
Sur le serveur, les valeurs de formulaire soumises sont identifiées par l' attribut name des champs de la page.
La raison pour laquelle UniqueID fonctionne est que UniqueID et le nom sont en fait la même chose lorsque le contrôle serveur est rendu en HTML.
Voici un article qui décrit ce qu'est l'identifiant unique:
la source
C'est comme ça que je fais
la source