Если вы пытаетесь просто привязать текстовые поля и отображать автозаполнение при изменении их значения, то должно работать следующее:
//Javascript
$("#txtSearchValue").autocomplete({
source: function (request, response) {
var regex = RegExp('[^a-z0-9\\&\\s]', 'gi');
var obj = {
searchValue: request.term.replace(regex, '')
};
$.ajax({
type: "POST"
, contentType: "application/json; charset=utf-8"
, url: "AutoComplete.asmx/QueryList"
, data: JSON.stringify(obj)
, dataType: "json"
, async: true
, success: function (data) {
response(data.d);
}
, error: function (request, status, error) {
var err = jQuery.parseJSON(request.responseText);
alert(err.Message);
}
});
}
, minLength: 2
});
//Auto-Complete on the server (code using C#)
[WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] QueryList(string searchValue)
{
string sqlSelect = @"select column_name
from table
where column_name like '%' + @target + '%'";
using(SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["connString"].ConnectionString))
{
using(SqlDataAdapter da = new SqlDataAdapter(sqlSelect, conn))
{
da.SelectCommand.Parameters.AddWithValue("@target", searchValue);
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
string[] results = new string[dt.Rows.Count];
for (int i=0; i<results.Length; i++)
{
results[i] = dt.Rows[i]["column_name"].ToString();
}
return results;
}
}
}