我们如何使用asp.net,webservice和sql数据库集成jQuery自动完成?

我正在尝试实现为“jQuery Autocomplete和ASP.NET”提供的代码,但无法集成它,因为您使用subsonic来查询数据库。

那么你能告诉我如何查询sqldatabase并使用C#将查询结果绑定到asp.net中webservice的插件吗?

这是一个非常简单的任务,问题是jQuery自动完成扩展器需要一组值。 下面是我如何从ASMX Web服务解析标准XML结果以与jQuery自动完成扩展程序一起使用的示例。

由于ASP.NET喜欢重写您的ID,因此您可以传入ClientID以获取动态ID。

$("#<%= TextBox1.ClientID %>").autocomplete("/Demo/WebSvc.asmx/SuggestCustomers", { parse: function(data) { var parsed = []; $(data).find("string").each(function() { parsed[parsed.length] = { data: [$(this).text()], value: $(this).text(), result: [$(this).text()] }; }); return parsed; }, dataType: "xml" }); 

以下是关联的Web服务的外观,请记住取消注释Web服务上的[ScriptService]属性:

 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService] public class WebSvc: WebService { [WebMethod] public string[] SuggestedCustomers(string q) { // Do Query // Add items into string array List items = new List(); while (dr.Read()) { items.Add(dr[0].ToString()); } // Return array return items.ToArray(); } } 

我不熟悉asp.net,但从根本上说,大多数网络编码问题都涉及到将问题分解为较小的问题。

从架构的角度来看,您的组件可能包括以下内容……

  • 可能使用您的数据库等来回答或生成查询结果的服务层。
  • 一个Web组件或服务入口点,它使用上面提到的已完成的服务以browesrr可以轻松理解的格式返回数据 – 例如JSON。
  • 一些javascript使用jquery调用结束点定义在上面的直接点。
  • 为所有上述组件编写unit testing – 不要忘记测试失败案例,因为我们都知道软件有时会失败…