1

我正在尝试实现为“jQuery Autocomplete and ASP.NET”提供的代码,但由于您使用亚音速查询数据库而无法集成它。

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

4

2 回答 2

2

这是一个非常简单的任务,关键是 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<string> items = new List<string>();
        while (dr.Read())
        {
            items.Add(dr[0].ToString());
        }

        // Return array
        return items.ToArray();
    }

}
于 2009-05-27T18:54:45.677 回答
-1

我不精通asp.net,但基本上像大多数网络编码问题一样,这涉及将您的问题分解成更小的问题。

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

  • 可能使用您的数据库等来回答或为您的查询产生结果的服务层。
  • 一个 Web 组件或服务入口点,它使用上面提到的完整服务以 browesrr 可以轻松理解的格式返回数据 - 例如 JSON。
  • 一些使用 jquery 的 javascript 调用在上面的直接点中定义的端点。
  • 为上述所有组件编写单元测试 - 不要忘记测试失败案例,因为众所周知,软件有时会失败......
于 2009-01-19T10:52:42.920 回答