how can i call a VB function - deleteevent()
in usercontrol.ascx.vb from a javascript function in clickhandler(e)
in usercontrol.ascx. The call should cause a postback because I need the usercontrol to display the changes.
I am currently trying to do it by using a linkbutton with style display:none, and calling its click event from the javascript function. But i dunno how to call the click event.
I had to pass a value to the vb function from the javascript, but i am taking care of it using a hiddenfield.
the environment is asp.net 3.0 language:vb
Thanks.
Check this two links about calling codebehind methods with JQuery :
Using jQuery to directly call ASP.NET AJAX page methods
Using jQuery to Call ASP.NET AJAX Page Methods
You should call aspx instead of ascx methods. beacuse at runtime all user controls (ascx) merged to your page (aspx).
If you have a user control with multiple instances in a page, you should use a parameter to define context of method in each usercontrol. Maybe user control's clientID.
This one is slightly tricky, but kinda fun.
Basically, you need to:
- Implement IPostBackEventHandler on the control where you want to raise the event
- Create a postback reference for the control
- Call the postback reference, either via a hyperlink or jscript
In the code behind, handle the postback reference and call your 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
For more info, see here: ClientScriptManager.GetPostBackEventReference