jQuery-AJAX将下拉列表重新绑定到存储过程的结果

我有一个很长的人名的下拉列表。 多达2,000个名字。 我想通过将下拉列表限制为一次一个名称的子集,更容易找到用户感兴趣的名称。 我通过创建一系列26个链接(A,B,C … Z)来完成此操作,这些链接调用后面的代码中的方法,该方法仅使用用户单击的字母开头填充下拉列表。

这一切都运行良好,但我希望能够使用AJAX完成下拉列表的更新,而无需刷新页面。 我想将jQuery用于AJAXfunction而不是ASP.NET AJAX。

我的问题是我不知道如何执行存储过程然后通过jQuery AJAX用新数据集“重新绑定”下拉列表。 可能提供和示例或演练的任何建议或资源? 谢谢。

一些方向给你。

首先创建一个页面, webservice或httphandler ,它将接收你的post并返回json。

处理器:

public void GetNames(HttpContext context) { context.Response.ContentType = "application/json"; context.Response.ContentEncoding = Encoding.UTF8; var results = DataAccess.GetNames(context.Request["letter"]); string json = //encode results to json somehow, json.net for example. context.Response.Write(json ); } 

标记

 
  • A

要执行$ .post的脚本

 $(function(){ $("li").click(function(){ var letter = $(this).text(); $.post("SomeUrl/GetNames", {letter: letter}, function(data){ var $sel = $("#names").empty(); $.each(data, function(){ //this assumes the json is an array in the format of {value: 1, name:'joe'} $sel.append(""); }); }, "json"); }); }); 

这应该是如何完成任务的一个很好的大纲。

一些额外的资源。

  • jQuery AJAX教程
  • 在msdn上介绍JSON
  • json.net
  • jQuery文档
  • 创建一个返回json的http处理程序 (博客上的其他文章也可以使用)

jQuery Autocomplete插件可能是一个有效的解决方案。