2014-03-29 5 views
5

Ich bin auf der Suche nach einem Beispiel für die Verwendung von Typeahead.js mit einem Asp.Net Webmethod.Integration von Typeahead.js mit ASP.Net Webmethod

Ich habe das Beispiel von http://twitter.github.io/typeahead.js/examples/ arbeiten mit dem grundlegenden Beispiel, aber ich verstehe nicht vollständig, wie die Bloodhound-Funktionalität mit einem asp.net-Webmethod implementieren.

Die typeahead-Funktion ruft die WebMethod auf (ich kann den Schritt im Debugger sehen), aber es wird nichts in die Liste für den TypeAhead zurückgegeben.

Hier ist das Markup:

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

Und hier ist der 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() 
     }); 
    }); 

Und hier ist die WebMethod:

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

Jede Hilfe sehr geschätzt wird.

+0

Können Sie Ihren C# Code veröffentlichen? –

+1

Bitte verwenden Sie nicht "bootstrap" -Tag, verwenden Sie "twitter-bootstrap", da es etwas anderes bedeutet –

+0

beziehen Sie sich auf http://StackOverflow.com/Questions/2006828/possible-to-invoke-asmx-service-with-Parameter- via-url-query-string können Sie Ihre Webmethode so dekorieren, dass sie querystring aufruft – Naga

Antwort

0

Es sieht so aus, als müssten Sie den Parameter möglicherweise als Abfragezeichenfolge in C# abrufen. Versuchen Sie die Verwendung von return Suggestions.TextAutocomplete (Request.QueryString ["param"]);