2011-05-21 50 views
0


我一直在努力實現自動在我的網站上完成2個小時,仍然無法獲得直通。
這是我的代碼。ASP.Net - 阿賈克斯自動完成功能使用jQuery

<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> 

Web服務代碼

[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服務代碼中放了一個斷點,但沒有命中!你認爲我打電話給網絡服務的方式有問題!

回答

0

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

您正在使用的數據類型:「JSON」,這意味着jQuery將嘗試將評價結果作爲JSON,如果您使用純文本格式的響應使用數據類型:「文字」。

+0

data.d.split( 「:」)似乎是錯的也應該是data.split(」 :「) – 2011-05-21 06:27:53