2012-04-12 6 views
1

Ich bin neu in ASP.NET, ich mache ein Suchfeld in meiner Anwendung mit AJAX.Implement SearchBox mit Ajax

Beispiel: Wenn ein Benutzer "abc" in das Textfeld eingibt, ruft das Textfeld Daten aus der Datenbank ab, die mit "abc" beginnen.

aber ich bin nicht in der Lage Daten zu sehen,

Hier ist mein Code-Schnipsel:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SearchBox.aspx.cs" Inherits="SearchBox" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
<script type="text/javascript"> 
    function getdata() 
    { 

     var connection = new ActiveXObject("System.Data.SqlClient"); 

     var connectionstring = "Data Source=ilsql;Initial Catalog=krunal_DB;User ID=krunaldbuser;[email protected];Provider=System.Data.SqlClient"; 

     connection.Open(connectionstring); 
     var rs = new ActiveXObject("ADODB.Recordset"); 

     rs.Open("SELECT DISTINCT Scrip FROM dbo.SearchBoxData where Scrip Like '{0}%'", TextBox1.Text, connection); 
     rs.MoveFirst 
     while (!rs.eof) { 

      document.write(rs.fields(1)); 
      rs.movenext; 
     } 

     rs.close; 
     connection.close; 





      var xmlhttp; 
      if (str.length == 0) { 
       document.getElementById("txtHint").innerHTML = ""; 
       return; 
      } 
      if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp = new XMLHttpRequest(); 
      } 
      else {// code for IE6, IE5 
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange = function() { 
       if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
        document.getElementById("txtHint").innerHTML = xmlhttp.responseText; 
       } 
      } 
      xmlhttp.open("GET", "gethint.asp?q=" + str, true); 
      xmlhttp.send(); 

    } 
</script> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="TextBox1" runat="server" onkeyup="getdata()"></asp:TextBox> 

    </div> 
    </form> 
</body> 
</html> 

Jede Hilfe appriciated wird.

Vielen Dank im Voraus!

+0

Warum nicht verwenden Sie Auto-Vervollständigen Textbox von AjaxControlToolkit? es ist wirklich einfach zu bedienen und zu konfigurieren – Habib

Antwort

1

warum versuchen Sie nicht AutoCompleteExtender von AjaxControlToolkit. die finden: demo here

<ajaxToolkit:AutoCompleteExtender 
runat="server" 
ID="autoComplete1" 
TargetControlID="myTextBox" 
ServiceMethod="GetCompletionList" 
ServicePath="AutoComplete.asmx" 
MinimumPrefixLength="2" 
CompletionInterval="1000" 
EnableCaching="true" 
CompletionSetCount="20" 
CompletionListCssClass="autocomplete_completionListElement" 
CompletionListItemCssClass="autocomplete_listItem" 
CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem" 
DelimiterCharacters=";, :" 
ShowOnlyCurrentWordInCompletionListItem="true"> 
    <Animations> 
     <OnShow> ... </OnShow> 
     <OnHide> ... </OnHide> 
    </Animations> 

+0

Ich habe nicht viel Wissen in diesem AJAX ..... m neu zu dieser Technologie, wo meine Abfrage schreiben und wie db Verbindung zu öffnen? – Krunal

+0

gehen Sie zu diesem LINK: http://www.asp.net/ajaxlibrary/act.ashx –