在ASP.NET用户控件中使用AJAX回调

时间:2008-10-17 05:50:58

标签: asp.net jquery ajax

实现需要AJAX回调的用户控件的最佳方法是什么?

我想完成一些事情:

  • 在浏览器中完成事件(例如,拖放)会触发可以引发控件事件的AJAX通知,这会导致页面上的代码使用控件执行任何需要执行的操作(例如,更改值一个数据库)。
  • 进行部分更新(不使用更新面板),可以执行填充文本框下方的自动完成下拉菜单等操作。
  • 实现一个通用的控件,可以在多个页面上重复使用
  • 避免在页面本身上实现将事件传递回控件的逻辑,因为这是重复且难以维护的

我在大多数客户端使用jQuery,但对于实际的AJAX调用,我并不关心它是jQuery还是ASP AJAX库。

有效的是,用户控件上的PageMethods是完美的,可以从客户端脚本轻松调用。不幸的是,据我所知,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 个答案:

答案 0 :(得分:2)

在页面中实现ICallbackEventHandler - 这是一种从JavaScript调用页面函数的简单方法。

这是一个很好的教程:

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

答案 1 :(得分:0)

你可能想看看; Ra-Ajax UserControl Sample并将这些知识与Ra-Ajax Drag and Drop

结合起来

单击左侧的“显示代码”C#图标以查看代码的使用情况......