Использование обратных вызовов AJAX с пользовательскими элементами управления ASP.NET - PullRequest
3 голосов
/ 17 октября 2008

Каков наилучший способ реализации пользовательских элементов управления, требующих обратных вызовов AJAX?

Я хочу сделать несколько вещей:

  • У событий, выполняемых в браузере (например, перетаскивание), запускается уведомление AJAX, которое может вызвать событие элемента управления, в результате чего код на странице, используя элемент управления, выполняет все, что ему нужно (например, изменяет значение база данных).
  • Имеют частичные обновления (НЕ используя панель обновления), которые могут выполнять такие вещи, как заполнение выпадающего списка автозаполнения под текстовым полем.
  • Реализация единого пользовательского элемента управления, который достаточно универсален для повторного использования на нескольких страницах
  • Избегайте необходимости реализовывать логику на самой странице, которая передает события обратно в элемент управления, потому что это повторяется и трудно поддерживать

Я использую jQuery для большей части клиентской части, но для реальных вызовов AJAX меня не волнует, являются ли они jQuery или ASP AJAX-библиотеками.

По сути, то, что было бы идеально, - это PageMethods в пользовательском элементе управления, который можно легко вызывать из клиентского скрипта. К сожалению, насколько мне известно, методы страницы не работают с пользовательскими элементами управления.


В качестве примера я буду использовать элемент управления автозаполнением:

Я должен иметь возможность поставить элемент управления автозаполнением на странице, а затем в коде страницы, например:

Public Sub HandleLookup(ByVal input As String, ByRef list As List(Of String) Handles MyControl.LookupEntries
  list = New List(Of String)
  ' Query database for list of items.. 
  For Each item as String in FullItemList
    If item.StartsWith(input) then list.Add(item)
  Next
  Return list
End Sub

И больше ничего не делать .. Остальной код должен быть в usercontrol.


Обратите внимание, что элементы управления, которые я пытаюсь сделать, гораздо более специфичны, чем, например, автозаполнение. Они не существуют ни в каких сторонних библиотеках, и мне действительно нужно иметь возможность создавать их самостоятельно.

Ответы [ 2 ]

2 голосов
/ 17 октября 2008

Изучите реализацию ICallbackEventHandler на своей странице - это простой способ сделать обратный вызов функции страницы из JavaScript.

Вот хороший урок:

http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=119

0 голосов
/ 20 ноября 2008

Вы можете проверить; Ra-Ajax UserControl Sample и объедините эти знания с Ra-Ajax Drag and Drop

Щелкните значок «Показать код» C # слева, чтобы увидеть использование кода ...

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