2013-05-21 6 views
0

Selon ce post, vous pouvez intercepter le message en remplaçant cette fonction __doPostBack mais cela ne fonctionnera pas. Si je regarde la source générée, je ne suis pas capable de voir la fonction qui est censée être générée automatiquement et fait asp.net faire la publication.intercepte la fonction __doPostBack

où est cette fonction? et comment l'intercepter?

J'utilise asp.net 4 et 2012 vs

Default.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

    <script> 
     //breaks here as it cant find __doPostBack 
     var __original = __doPostBack; 
     __doPostBack = myFunction(); 

     function myFunction() { 

      alert('intercept'); 

     } 

    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox> 

     <asp:Button ID="Button1" runat="server" Text="Button" /> 
    </div> 
    </form> 
</body> 
</html> 

Default.aspx.vb

Partial Class _Default 
    Inherits System.Web.UI.Page 

    Protected Sub form1_Load(sender As Object, e As EventArgs) Handles form1.Load 

    End Sub 

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim txt As String = TextBox1.Text 

    End Sub 
End Class 
+0

La fonction __doPostBack doit être générée automatiquement lorsque le contrôle de publication (comme asp: LinkButton) se trouve sur la page. Mais pourquoi avez-vous besoin d'intercepter cela? –

+0

ce n'est pas là ....? –

+0

parce que je ne peux pas ajouter retourner faux via jquery ou sur le bouton cliquez ou sur le formulaire soumettre –

Répondre

1

Un bouton ASP.NET rend un <input type="submit" /> à postback le formulaire et n'utilisera jamais cette méthode. La méthode __doPostBack est uniquement utilisée pour les éléments qui ne sont pas des boutons de saisie qui ne provoquent normalement pas une opération POST sur le serveur. C'est une fonction qui se trouve dans l'un des fichiers JavaScript de Microsoft et qui n'est restituée que sur le client. Les utilisations courantes de __doPostBack sont les contrôles LinkButton, les contrôles qui peuvent avoir AutoPostBack="true" et d'autres.

En outre, il peut y avoir un appel à WebForms_DoPostBack ... quelque chose de ce type nommé qui publie également, mais appelle en interne __doPostBack.

Si vous essayez d'empêcher la publication après un clic sur votre bouton, attachez-le à l'événement de soumission du formulaire et annulez l'opération de publication de cette façon.

Questions connexes