0

comment puis-je appeler une fonction VB - deleteevent() dans usercontrol.ascx.vb à partir d'une fonction javascript dans clickhandler(e) dans usercontrol.ascx. L'appel doit provoquer une publication parce que j'ai besoin de la commande usercontrol pour afficher les modifications.Contrôle utilisateur - appel d'un événement de clic vb linkbutton (dans un contrôle utilisateur) à partir de javascript

J'essaye actuellement de le faire en utilisant un bouton de lien avec l'affichage de style: aucun, et en appelant son événement de clic de la fonction de javascript. Mais je ne sais pas comment appeler l'événement de clic.

Je devais passer une valeur à la fonction vb à partir du javascript, mais j'en prends soin en utilisant un champ caché.

l'environnement est asp.net 3.0 langue: vb

Merci.

Répondre

4

Vérifiez ces deux liens sur appeler des méthodes de CodeBehind avec JQuery:

Using jQuery to directly call ASP.NET AJAX page methods

Using jQuery to Call ASP.NET AJAX Page Methods

Vous devez appeler ASPX au lieu des méthodes ascx. beacuse à l'exécution tous les contrôles utilisateur (ascx) fusionnés à votre page (aspx).

Si vous avez un contrôle utilisateur avec plusieurs instances dans une page, vous devez utiliser un paramètre pour définir le contexte de la méthode dans chaque commande usercontrol. Peut-être le clientID du contrôle utilisateur.

1

Celui-ci est un peu délicat, mais plutôt amusant.

Fondamentalement, vous devez:

  1. Mettre en oeuvre IPostBackEventHandler sur le contrôle où vous voulez déclencher l'événement
  2. Créer une référence postback pour le contrôle
  3. Appelez la référence postback, que ce soit par l'intermédiaire d'un lien hypertexte ou JScript
  4. Dans le code derrière, gérer la référence postback et appelez votre code

    Public Class MyControl 
    Inherits UserControl 
    Implements IPostBackEventHandler 
    
    Public Sub RaisePostBackEvent(ByVal eventArgument As String) Implements System.Web.UI.IPostBackEventHandler.RaisePostBackEvent 
    
        ' Call deleteEvent here 
        DeleteEvent(eventArgument) ' This will contain "SomeArgumentYouWantToPassToDeleteEvent" 
    
    End Sub 
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
        Dim cs As ClientScriptManager = Page.ClientScript 
    
        Dim a As New HtmlAnchor() 
        a.ID = "myanchor1" 
        a.InnerText = "Delete Event" 
        a.HRef = cs.GetPostBackClientHyperlink(Me, "SomeArgumentYouWantToPassToDeleteEvent") 
    
        ' You could alternatively construct some jscript and output it. 
    
        Controls.Add(a) 
    
    End Sub 
    End Class 
    

Pour plus d'informations, voir ici: ClientScriptManager.GetPostBackEventReference

Questions connexes