Я использую 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;
}
}
JQuery UI автозаполнения или какой-либо другой плагин? –
Да jquery ui автозаполнение. – oJM86o
Я думаю, вы можете использовать встроенный '.on (' вместо 'livequery' plugin - предположение о более новой версии jQuery. –