2014-03-29 94 views
5

我正在尋找一個使用Typeahead.js與Asp.Net Web方法的示例。將Typeahead.js與ASP.Net Webmethod集成

我從http://twitter.github.io/typeahead.js/examples/的例子中使用基本的例子,但我並不完全理解如何通過asp.net webmethod實現Bloodhound功能。

typeahead函數正在調用WebMethod(我可以在調試器中看到該步驟),但沒有任何內容返回到TypeAhead的列表中。

這裏的標記:

<div class="input-group"> 
    <asp:TextBox ID="tboxText" runat="server" CssClass="form-control autocomplete" placeholder="Look Up"></asp:TextBox> 
    <span class="input-group-btn"> 
     <asp:Button ID="btnAddItem" runat="server" Text="Add" CssClass="btn btn btn-amethyst" /> 
    </span> 
</div> 

而這裏的jQuery的:

$(document).ready(function() { 
     var textlookup = new Bloodhound({ 
      datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), 
      queryTokenizer: Bloodhound.tokenizers.whitespace, 
      remote: '/WebServices/InternalMethods.asmx/TextAutocomplete?param=%QUERY' 
     }); 

     textlookup.initialize(); 

     $('.autocomplete').typeahead({ 
      hint: true, 
      highlight: true, 
      minLength: 1 
     }, 
     { 
      name: 'textlookup', 
      displayKey: 'value', 
      source: textlookup.ttAdapter() 
     }); 
    }); 

這裏是的WebMethod:

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public List<string> TextAutocomplete(string param) 
    { 
     return Suggestions.TextAutocomplete(param); 
    } 

任何幫助表示讚賞。

+0

你可以發佈你的C#代碼嗎? –

+1

請不要使用「bootstrap」標籤,請使用「twitter-bootstrap」,因爲這意味着其他內容 –

+0

參考http://stackoverflow.com/questions/2006828/possible-to-invoke-asmx-service-with-parameter- via-url-query-string你可以裝飾你的web方法來使用querystring來調用 – Naga

回答

0

看起來您可能需要將參數作爲查詢字符串在c#中。嘗試使用return Suggestions.TextAutocomplete(Request.QueryString [「param」]);