Пользовательский элемент управления - вызов события клика по ссылке vb (в пользовательском элементе управления) из javascript - PullRequest
0 голосов
/ 11 апреля 2009

как я могу вызвать функцию VB - deleteevent() в usercontrol.ascx.vb из функции JavaScript в clickhandler(e) в usercontrol.ascx. Вызов должен вызвать обратную передачу , потому что мне нужен пользовательский контроль для отображения изменений.

В настоящее время я пытаюсь сделать это, используя кнопку ссылки со стилем display: none и вызывая событие click из функции javascript. Но я не знаю, как вызвать событие click.

Мне пришлось передать значение функции vb из javascript, но я позаботился об этом, используя скрытое поле.

среда asp.net 3.0 язык: vb

Спасибо.

Ответы [ 2 ]

4 голосов
/ 11 апреля 2009

Проверьте эти две ссылки о вызове методов codebehind с JQuery:

Использование jQuery для прямого вызова методов страницы ASP.NET AJAX

Использование jQuery для вызова методов страницы ASP.NET AJAX

Вы должны вызывать aspx вместо методов ascx. потому что во время выполнения все пользовательские элементы управления (ascx) объединяются с вашей страницей (aspx).

Если у вас есть пользовательский элемент управления с несколькими экземплярами на странице, вы должны использовать параметр для определения контекста метода в каждом элементе управления пользователя. Возможно, идентификатор клиента в пользовательском элементе управления.

1 голос
/ 14 апреля 2009

Это немного сложно, но довольно забавно.

В основном вам необходимо:

  1. Реализация IPostBackEventHandler в элементе управления, где вы хотите вызвать событие
  2. Создание ссылки обратной передачи для элемента управления
  3. Вызвать ссылку обратной передачи, либо по гиперссылке, либо через jscript
  4. В указанном коде обработайте ссылку обратной передачи и назовите свой код

    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
    

Подробнее см. Здесь: ClientScriptManager.GetPostBackEventReference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...