实现需要 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
什么也不做......其余的代码应该在用户控件中。
<小时/>请注意,我尝试制作的控件比自动完成等更具体。它们不存在于任何第三方库中,我真的需要能够自己制作它们。
最佳答案
考虑在您的页面中实现 ICallbackEventHandler - 这是从 JavaScript 回调页面函数的简单方法。
这是一个很好的教程:
http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=119
关于asp.net - 将 AJAX 回调与 ASP.NET 用户控件结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/211184/