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

时间:2009-01-19 10:36:43

标签: asp.net jquery subsonic autocomplete

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

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

2 个答案:

答案 0 :(得分: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();
    }

}

答案 1 :(得分:-1)

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

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

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