c# - Jquery Autocomplete Plugin works only Once in ASP.Net 3.5 -


i want search city database. when user type initials. used following autocomplete jquery plugin, (asp.net 3.5 + vs 2008)

<link href="css/jquery.autocomplete.css" rel="stylesheet" type="text/css" /> <script src="scripts/jquery-1.4.1.min.js" type="text/javascript"></script> <script src="scripts/jquery.autocomplete.js" type="text/javascript"></script>  <script type="text/javascript"> $(document).ready(function() {     $("#<%=txtcity.clientid%>").autocomplete("search_cs.ashx"); });     </script> 

and search_cs.ashx class is,

<%@ webhandler language="c#" class="search_cs" %>  using system; using system.web; using system.data.sqlclient; using system.configuration; using system.text;   public class search_cs : ihttphandler {  public void processrequest (httpcontext context) {     string prefixtext = context.request.querystring["q"];     using (sqlconnection con = datasetclass.condb())     {         //con.connectionstring = configurationmanager         //        .connectionstrings["constr"].connectionstring;         using (sqlcommand cmd = new sqlcommand("select distinct cname city cname        @citytext + '%'", con))         {             //cmd.commandtext = "select contactname customers " +             //"contactname @searchtext + '%'";             cmd.parameters.addwithvalue("@citytext", prefixtext);             cmd.connection = con;             stringbuilder sb = new stringbuilder();             //con.open();             using (sqldatareader sdr = cmd.executereader())             {                 while (sdr.read())                 {                     sb.append(sdr["cname"])                         .append(environment.newline);                 }             }              con.close();             context.response.write(sb.tostring());         }     } }  public bool isreusable {     {         return false;     } } } 

this works fine problem plugin works once. after when type initials, autocomplete not work untill refresh page. tried many solutions in vain. please me out stucking here 2 weeks.

thing need remember $(document).ready() calls first time when page load. after ajax/partial postback method not call means text box no longer have auto-complete functionality. off problem should wrap code in function

function bind() { $("#<%=txtcity.clientid%>").autocomplete("search_cs.ashx"); } 

and call in

 $(document).ready(function() {     bind(); } 

and in

function pageload() { bind(); } 

have great article http://encosia.com/document-ready-and-pageload-are-not-the-same/


Comments