ASP.Net - автозаполнение Ajax с использованием jQuery - PullRequest
0 голосов
/ 21 мая 2011

Привет
Я пытался внедрить автозавершение на моем сайте с 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 возвращает простую строку в ответ с ": " в качестве разделителя.Может ли кто-нибудь указать мне правильное направление!

Обновление: я поставил точку останова в коде веб-службы, но он не был достигнут!Как вы думаете, есть проблема с тем, как я вызываю веб-сервис!

Ответы [ 2 ]

0 голосов
/ 21 мая 2011

строка json должна быть такой

{"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]);
0 голосов
/ 21 мая 2011

Вы используете dataType: "json", что означает, что jquery попытается оценить результат как JSON, если вы используете простой текст для ответа, используйте dataType: "text".

...