ASP.Net - 使用jQuery的Ajax自动完成

时间:2011-05-21 06:15:51

标签: jquery asp.net-ajax autocomplete

您好
我一直试图在2小时内在我的网站上实现自动完成,但仍然无法通过 这是我的代码。

<script type="text/jscript">
        $(document).ready(function() {

    $.ajax({
        type: "POST",
        url: "/AjaxLoad.asmx/GetBrands",
        dataType: "json",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        success: function(data) {
            var datafromServer = data.d.split(":");
            $("[id$='tbBrands']").autocomplete({
                source: datafromServer
            });
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
           alert(textStatus);
        }
    });

}
    </script>

    <div id="ajaxbrands">
        <input id="tbBrands" runat="server" />
    </div>

网络服务代码

[WebMethod]
    public string GetBrands()
    {
        StringBuilder sbStates = new StringBuilder();

        sbStates.Append("Apple").Append(":");
        sbStates.Append("Apex").Append(":");
        sbStates.Append("Amex").Append(":");
        sbStates.Append("Unity").Append(":");
        sbStates.Append("Unex").Append(":");
        sbStates.Append("Unitel");            
        return sbStates.ToString();
    }

GetBrands方法返回简单字符串以“”作为分隔符。 有人能指出我正确的方向!

更新:我在Web服务代码中设置了一个断点,但它没有被击中!您认为我调用Web服务的方式有问题吗?

2 个答案:

答案 0 :(得分:0)

您正在使用dataType:“json”,这意味着如果您使用纯文本作为响应,则jquery将尝试将结果评估为JSON:“text”。

答案 1 :(得分:0)

json string应该是这样的

{"key":"value","key1":"value1"}

并使用

success: function(data) {

alert($.parseJSON(data));
            var datafromServer = data.d.split(":");
            $("[id$='tbBrands']").autocomplete({
                source: datafromServer
            });
        },





for (var key in result) {
    if (result.hasOwnProperty(key)) {
         alert(result[key]);