2013-05-02 4 views
1

Я использую JQuery UI автозаполненияавтозаполнение указать дополнительные параметры?

Если я сделать это в JQuery/ASP.NET:

$("#<%= txtName.ClientID %>").livequery(function() { 
       $(this).autocomplete('LoadNames.ashx') 
      .result(function (event, data, formatted) { // data[0] : Name, data[1] :AddressID 
       // Set Selected email ID to hidden field 
       $("#<%= hdnID.ClientID %>").val(data[1]); 
       if (data[1] != "0") { 
        var url = "http://emps/NewEntry.aspx?ID=" + data[1]; 
        window.open(url); 
       } 
       else { 
       } 
      }); 
      }); 

Это прекрасно работает, но я хочу, чтобы добавить больше параметров, таких как minChars и т.д., так Я стараюсь:

$("#<%= txtName.ClientID %>").livequery(function() { 
       $(this).autocomplete({source:"LoadNames.ashx", delay:100, minChars:2}) 
      .result(function (event, data, formatted) { // data[0] : Name, data[1] :AddressID 
       // Set Selected email ID to hidden field 
       $("#<%= hdnID.ClientID %>").val(data[1]); 
       if (data[1] != "0") { 
        var url = "http://emps/NewEntry.aspx?ID=" + data[1]; 
        window.open(url); 
       } 
       else { 
       } 
      }); 
      }); 

Это не работает. Как добавить дополнительные параметры, такие как minChars, delay и т. Д.?

Из комментариев кто-то хотел увидеть файл .ashx, это он, но с этим нет никаких проблем. Его просто я хочу, чтобы добавить дополнительные параметры для автозаполнения:

public class LoadNames : IHttpHandler 
    { 

     public void ProcessRequest(HttpContext context) 
     { 
      DataSet ds = null; 
      Dictionary<long, string> lstAddresses = new Dictionary<long, string>(); 

      ds = GetLoginNames(); 

      if (ds.Tables[0].Rows.Count > 0) 
      { 
       foreach (DataRow dr in ds.Tables[0].Rows) 
       { 
        lstAddresses.Add(Convert.ToInt64(dr["LoginID"].ToString()), dr["Login"].ToString()); 
       } 
       StringBuilder builder = new StringBuilder(); 

       foreach (KeyValuePair<long, string> item in lstAddresses) 
       { 
        builder.Append(string.Format("{0}|{1}|{2}", 
          item.Value, 
          item.Key, 
          Environment.NewLine)); 
       } 
       context.Response.Write(builder.ToString()); 
      } 
     } 

     public DataSet GetLoginNames() 
     { 
      SqlCommand cmdSelect = default(SqlCommand); 
      SqlConnection conMyData = default(SqlConnection); 
      SqlDataAdapter daIssues = default(SqlDataAdapter); 
      System.Data.DataSet ds = null; 

      conMyData = null; 

      //try and make a connection 
      try 
      { 
       conMyData = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connString"]); 
       cmdSelect = new SqlCommand("selFullNames", conMyData); 

       var _with1 = cmdSelect; 
       _with1.CommandType = System.Data.CommandType.StoredProcedure; 
       //add parameters 
       _with1.Parameters.Add("@Inactive", SqlDbType.Int).Value = 2; 
       daIssues = new SqlDataAdapter(); 
       daIssues.SelectCommand = cmdSelect; 
       ds = new System.Data.DataSet(); 
       daIssues.Fill(ds); 

       return ds; 
       //catch any exceptions that might be thrown 
      } 
      catch (Exception e) 
      { 
       throw e; 
       //clean up and close resources 
      } 
      finally 
      { 
       conMyData.Close(); 
       cmdSelect = null; 
       conMyData = null; 
      } 
     } 

     public bool IsReusable 
     { 
      get 
      { 
       return false; 
      } 
     } 
+0

JQuery UI автозаполнения или какой-либо другой плагин? –

+0

Да jquery ui автозаполнение. – oJM86o

+0

Я думаю, вы можете использовать встроенный '.on (' вместо 'livequery' plugin - предположение о более новой версии jQuery. –

ответ

0

Понял:

$(this).autocomplete("LoadNames.ashx", { minChars: 1, delay:100 })

0
$(document).on("keydown.autocomplete", "#<%= txtName.ClientID %>", function (e) { 
    $(this).autocomplete({ 
     source: "LoadNames.ashx", 
     delay: 100, 
     minLength: 2 
    }).result(function (event, data, formatted) { 
     $("#<%= hdnID.ClientID %>").val(data[1]); 
     if (data[1] != "0") { 
      var url = "http://emps/NewEntry.aspx?ID=" + data[1]; 
      window.open(url); 
     } else {} 
    }); 
}); 
Смежные вопросы