2012-03-29 13 views
1

Obwohl es viele jquery Autocomplete-Code in diesem Forum gibt. Ich habe jedoch nichts gefunden, was zu meinem SharePoint/ASP.NET Webseiten Fall passt. Ich folgte der jquery autocomplete link. Es ist hilfreich. Aber schauen Sie bitte aufAutocomplete jquery in asp.net, Quelle von Code hinter

Mein Code:

<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server"> 
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("asp:TextBox#TextBox3").autocomplete({ 
      source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
     }); 
    }); 

</script> 
</asp:Content> 

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server"> 
<table> 
     <tr><td> 
     <asp:Label ID="Label4" runat="server" Text="Qode"></asp:Label></td><td> 
      <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 

     </td></tr> 
</table> 

Frage

1. Can I use the code ` $("asp:TextBox#TextBox3")?` 
2. If the source comes from code behind instead of hard copy strings, how to do it? 

Lasst uns hinter in Code sagen:

 string[] source = new string[5]; 
     source[0] = "c++"; 
     source[1] = "java"; 
     source[2] = "php"; 
     source[3] = "coldfusion"; 
     source[4] = "javascript"; 

Dann, wie das Array jquery Code zu übergeben? Vielen Dank.

Antwort

3

In Bezug auf Ihre erste Frage, wenn Sie ASP.net Version 4 oder höher verwenden, können Sie den ClientIDMode des Textfelds auf "statisch" setzen und es wird der Server gezwungen, die ClientID gleich zu machen die Server-ID. Dann können Sie es in Ihrem jQuery-Code normal referenzieren.

Ex.

<asp:TextBox ID="TextBox3" runat="server" ClientIdMode="static"> `

$("#TextBox3") // select your text box with standard jQuery id selector 

Wenn Sie eine ältere Version von ASP.net verwenden, können Sie serverseitigen Code in Ihre ASPX legen Sie die dynamische clientID zuzugreifen, die erzeugt wird. Sie würden dies auch zu Ihrem jQuery-Selektor hinzufügen, aber es wäre ein wenig anders.

$("#<%= Textbox3.ClientID %>") 

Dies sollte die richtige Client-ID an den Browser übertragen und von jQuery behandelt werden.

Was Ihre zweite Frage betrifft, würde ich persönlich das Array zu JSON serialisieren und das an jQuery senden. Eine gute Bibliothek ist Json.Net (http://json.codeplex.com/), die Beispiele für die Verwendung der Bibliothek enthält.

+0

Ich habe $ (Dokument) .ready (function() {$ ("<% = TextBox3.ClientID%>"). Autocomplete ({aber es funktioniert nicht. –

+0

Überprüfen Sie meinen Code erneut, ich hatte einen Tippfehler in Der Selektor: Es sollte ein # vor dem <% = geben, damit der jQuery-Selektor ordnungsgemäß funktioniert. –

+1

Wenn Sie die Komponenten von Drittanbietern wie jason.net nicht verwenden können, können Sie [JavaScriptSerializer] (http://msdn.microsoft.com) verwenden .com/de-us/library/system.web.script.serialization.javascriptserializer (VS.90) .aspx) Wenn Ihre Zeichenfolge dynamisch ist, können Sie eine dünne Page-Methode hosten, für die Sie dann ajax verwenden und verwenden können Ergebnisse: – Roman

Verwandte Themen