2012-10-17 64 views
0

我沒有看到使用JQuery Autocomplete插件從我的webservice返回的數據。Asp.net JQuery自動完成不顯示數據

我確定這是我的代碼的JQuery部分的問題。 (螢火蟲表明,我得到一個字符串,從我的web格式類似於下面回來。)

"[\"Component 1\",\"Component 2\",\"Component 2\",\"Component 3\"]" 

(我認爲它可能是有2項相同的事實,但刪除重複的沒有什麼區別。)

我jQuery代碼是...

$('#tags').autocomplete({    
          source: function (request, response) { 
            $.ajax({ 
              type: "POST", 
              contentType: "application/json; charset=utf-8", 
              url: "QuickSearch/QuickSearch.asmx/GetDealerships", 
              data: "{'s':'" + request.term + "'}", 
              dataType: "json", 
              async: true, 
              success: function (data){ 
                response(data.d); 
               }, 
               error: function (result) { 
                 alert("Due to unexpected errors we were unable to load data"); 
                } 
           }); 
        }, 
     minLength: 2 
       }); 
     }); 

因此,誰能告訴我,我有什麼錯的成功:函數?

感謝

編輯

var array = data.split(","); 
    response(array); 

上面的代碼幾乎工作,除了我的下拉框還具有「標誌包裝的每個元素。我可以編輯該剝離出來的備用字符,但事實上,我不得不這樣做,這讓我懷疑我還沒有得到完全正確的地方..

+0

我認爲你需要,以便它發回JSON數據 - 雖然我想你可以分析你得到回把它變成一個數組的結果來修改你的web服務。嘗試通過將警報(數據)放入您的成功函數來查看發生了什麼 - 查看它是否是字符串。 –

+0

如果與服務器返回的問題完全相同,則爲什麼使用'data.d'獲取數據?你使用哪個asp.net版本? –

+0

它的.net 2,和web服務設置爲返回json數據(以及它的屬性[ScriptMethod(ResponseFormat = ResponseFormat.Json)]適用於它,並且該數據字符串絕對不是xml – Matt

回答

0

使用該腳本成功的事件處理程序:

response($.map(data, function (item) { 
    return { label: item, value: item }; 
})); 

這裏更多:http://api.jqueryui.com/autocomplete/#event-response

+0

這沒有幫助,從我的代碼返回的數組是一個字符串列表,而不是鍵/值對列表。 – Matt

+0

@Matt,你試過了嗎? –

+0

是的,我沒有幫助。我已經修改了js來將返回數據解析爲一個數組,並且工作正常。感謝您嘗試雖然:) – Matt