2011-10-11 128 views
0

我正在使用ASP.Net webservice JQuery自動完成。 我有ASP.Net Web服務被稱爲JQuery的(JSON)下拉作爲JQuery自動完成與ASp.Net web服務

$(document).ready(function() { 
    $("#txtTest").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "Webservice.asmx/GetNames", 
       data: "{'prefix':'" + request.term + "'}", 
       dataType: "json", 
       async: true, 
       success: function (data){ 
        response($.map(data, function(item) 
        { return item ; })); 
       }, 
       error: function (result) { 
        alert("Due to unexpected errors we were unable to load data"); 
       } 
      }); 
     }, 
     minLength:2 
    }); 
}); 

,我越來越對自動完成的下降輸出作爲

{"First":"Steve","Second":"AK"} 
{"First":"Evet","Second":"EV"} 
{"First":"Stevens","Second":"SV"} 

如何顯示的單獨的「第一」項(如Steve,Evet,Stevens)作爲下拉式自動完成的輸出?

請幫幫我!

回答

0

你需要看看在自動完成方法formatItem選項 - 試試這個

formatItem: function(row, i, n) { 
     return row.First; 
    } 
0

這可能會做的伎倆

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

您好,感謝您的幫助。但你的詭計並沒有幫助我。你能否重新訪問你的代碼片段?我沒有得到任何價值。請幫幫我。 – pal

+0

你有錯誤嗎?有什麼地方我們可以看到應用程序正在運行? –

0

看看我的回答這一個:Jquery Autocomplete 2 Fields

但在字段中使用您的值而不是「A」和「B」。

此外,你(可能)需要一個轉換器來處理asp.net數據:

$.ajax({ 
    url: "Webservice.asmx/GetNames", 
    dataType: "jsond", 
    type: "POST", 
    contentType: "application/json", 
    converters: { 
     "json jsond": function(msg) 
     { 
      return msg.hasOwnProperty('d') ? msg.d : msg; 
     } 
    }, 
...