lee loong Ответов: 1

Использование ajax с функцией автозаполнения


Цитата:
кто-нибудь знает, как я могу получить имя устройства из хранимой процедуры, когда пользователь вводит определенный символ, например G, и он должен показать имя, основанное на букве G. Кстати, в настоящее время я использую метод POST для извлечения имени устройства из базы данных


////db.cs

использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование системы.Сеть;
использование System.Data;
используя системы.Данных.Поставщики sqlclient;
использование системы.Конфигурация;

пространство имен Prototype3.Database_Access_Data
{
открытый класс дБ
{
SqlConnection con = newSqlConnection(ConfigurationManager.ConnectionStrings["localhost"].Параметр connectionString);
общественного недействительными торговая(расположение в CS)
{

SqlCommand com = new SqlCommand("SendGPS", con);


ком.CommandType = CommandType.Хранимая процедура;
ком.Параметры.AddWithValue("@DeviceImei", cs.DeviceImei);
ком.Параметры.AddWithValue ("@Latitude", cs.Latitude);
ком.Параметры.AddWithValue("@долгота", cs.долгота);
ком.Параметры.AddWithValue("@Distance", cs.Distance);
ком.Параметры.AddWithValue("@LocationSend", cs.LocationSend);
против.Открыть();
ком.Подключение = кон;
ком.Метод executenonquery();
против.Закрывать();

}

общественные объект DataTable LocationHistory(LocationHistory в CS)
{
DataTable dt = новый DataTable();

используя (sqlcommand, который программа sqlcmd = новая команда sqlcommand("GetLocationHistory", кон))
{
программа sqlcmd.CommandType = CommandType.Хранимая процедура;
программа sqlcmd.Параметры.Добавить(новый SqlParameter("DeviceImei", cs.DeviceImei));

пробовать
{
против.Открыть();
ДТ.Нагрузке(программа sqlcmd.ExecuteReader(CommandBehavior.Значение closeconnection));
}
catch (SqlException ex)
{
//Обрабатывайте ошибки так, как считаете нужным
}
}

возврат dt;
}
публичный набор данных GetUser()
{
SqlCommand com = new SqlCommand("GetUser", con);
ком.CommandType = CommandType.Хранимая процедура;
SqlDataAdapter da = новый SqlDataAdapter(com);
DataSet ds = новый набор данных();
да.Заполнить(ДС);
возврат ДС;


}
общественного недействительными SendDistance(расположение в CS)
{

SqlCommand com = new SqlCommand("SendDistance", con);


ком.CommandType = CommandType.Хранимая процедура;
ком.Параметры.AddWithValue("@DeviceImei", cs.DeviceImei);
ком.Параметры.AddWithValue("@Distance", cs.Distance);
ком.Параметры.AddWithValue("@LocationSend", cs.LocationSend);
против.Открыть();
ком.Подключение = кон;
ком.Метод executenonquery();
против.Закрывать();
}

общественные объект DataTable FlagingDevice(FlagingDevice в CS)
{
DataTable dt = новый DataTable();

используя (sqlcommand, который программа sqlcmd = новая команда sqlcommand("FlagingDevice", кон))
{
программа sqlcmd.CommandType = CommandType.Хранимая процедура;
программа sqlcmd.Параметры.Добавить(новый SqlParameter("Login", cs.Login));

пробовать
{
против.Открыть();
ДТ.Нагрузке(программа sqlcmd.ExecuteReader(CommandBehavior.Значение closeconnection));
}
catch (SqlException ex)
{
//Обрабатывайте ошибки так, как считаете нужным
}
}

возврат dt;
}
общественные объект DataTable SearchByOfficerName(SearchHistory в CS)
{
DataTable dt = новый DataTable();

используя (sqlcommand, который программа sqlcmd = новая команда sqlcommand("SearchByOfficer", кон))
{
программа sqlcmd.CommandType = CommandType.Хранимая процедура;
программа sqlcmd.Параметры.Добавить(новый SqlParameter("Name", cs.Name));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("StationID", cs.StationID));
программа sqlcmd.Параметры.Добавить(новый SqlParameter ("ID", cs.DivisionID));
программа sqlcmd.Параметры.Добавить(новый объект sqlparameter("Имя_устройства", КС.Имя_устройства));

пробовать
{
против.Открыть();
ДТ.Нагрузке(программа sqlcmd.ExecuteReader(CommandBehavior.Значение closeconnection));
}
catch (SqlException ex)
{
//Обрабатывайте ошибки так, как считаете нужным
}
}

возврат dt;
}
общественные объект DataTable SearchByDeviceName(SearchHistory в CS)
{
DataTable dt = новый DataTable();

используя (sqlcommand, который программа sqlcmd = новая команда sqlcommand("SearchByDeviceName", кон))
{
программа sqlcmd.CommandType = CommandType.Хранимая процедура;
программа sqlcmd.Параметры.Добавить(новый SqlParameter("Name", cs.OfficerName));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("StationID", cs.StationID));
программа sqlcmd.Параметры.Add(new SqlParameter("DivisionID", cs.DivisionID));
программа sqlcmd.Параметры.Добавить(новый объект sqlparameter("Имя_устройства", КС.Имя_устройства));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("BoxID", cs.BoxID));
пробовать
{
против.Открыть();
ДТ.Нагрузке(программа sqlcmd.ExecuteReader(CommandBehavior.Значение closeconnection));
}
catch (SqlException ex)
{
//Обрабатывайте ошибки так, как считаете нужным
}
}

возврат dt;
}
общественные объект DataTable SearchByElectoralDivision(SearchHistory в CS)
{
DataTable dt = новый DataTable();

используя (sqlcommand, который программа sqlcmd = новая команда sqlcommand("SearchByElectoralDivision", кон))
{
программа sqlcmd.CommandType = CommandType.Хранимая процедура;
программа sqlcmd.Параметры.Add(new SqlParameter("DivisionID", cs.DivisionID));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("Name", cs.Name));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("StationID", cs.StationID));
программа sqlcmd.Параметры.Добавить(новый объект sqlparameter("Имя_устройства", КС.Имя_устройства));

пробовать
{
против.Открыть();
ДТ.Нагрузке(программа sqlcmd.ExecuteReader(CommandBehavior.Значение closeconnection));
}
catch (SqlException ex)
{
//Обрабатывайте ошибки так, как считаете нужным
}
}

возврат dt;
}
общественные объект DataTable SearchByPollingStation(SearchHistory в CS)
{
DataTable dt = новый DataTable();

используя (sqlcommand, который программа sqlcmd = новая команда sqlcommand("SearchByPollingStation", кон))
{
программа sqlcmd.CommandType = CommandType.Хранимая процедура;
программа sqlcmd.Параметры.Добавить(новый SqlParameter("StationID", cs.StationID));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("OfficerName", cs.OfficerName));
программа sqlcmd.Параметры.Add(new SqlParameter("DivisionID", cs.DivisionID));
программа sqlcmd.Параметры.Добавить(новый объект sqlparameter("Имя_устройства", КС.Имя_устройства));

пробовать
{
против.Открыть();
ДТ.Нагрузке(программа sqlcmd.ExecuteReader(CommandBehavior.Значение closeconnection));
}
catch (SqlException ex)
{
//Обрабатывайте ошибки так, как считаете нужным
}
}

возврат dt;
}
public void SendBox(Box cs)
{
SqlCommand com = new SqlCommand("SendBox", con);


ком.CommandType = CommandType.Хранимая процедура;
ком.Параметры.AddWithValue("@Id", cs.Id);
ком.Параметры.AddWithValue ("@StationID", cs.PollingStationID);
ком.Параметры.AddWithValue("@DeviceImei", cs.DeviceImei);
против.Открыть();
ком.Подключение = кон;
ком.Метод executenonquery();
против.Закрывать();
}

публичный набор данных FlagingDeviceWithoutParameters()
{
SqlCommand com = new SqlCommand("FlagingDevice(без параметров)", con);
ком.CommandType = CommandType.Хранимая процедура;
SqlDataAdapter da = новый SqlDataAdapter(com);
DataSet ds = новый набор данных();
да.Заполнить(ДС);
возврат ДС;
}
общественные объект DataTable SearchByBox(SearchHistory в CS)
{

DataTable dt = новый DataTable();

используя (sqlcommand, который программа sqlcmd = новая команда sqlcommand("SearchByBox", кон))
{
программа sqlcmd.CommandType = CommandType.Хранимая процедура;
программа sqlcmd.Параметры.Добавить(новый объект sqlparameter("Имя_устройства", КС.Имя_устройства));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("StationID", cs.StationID));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("ElectoralDivisionID", cs.ElectoralDivisionID));
программа sqlcmd.Параметры.Добавить(новый SqlParameter("OfficerName", cs.OfficerName));

пробовать
{
против.Открыть();
ДТ.Нагрузке(программа sqlcmd.ExecuteReader(CommandBehavior.Значение closeconnection));
}
catch (SqlException ex)
{
}
возврат dt;
}

}
}
}

///// ValuesController.cs


использование Prototype3.Database_Access_Data;
использование системы;
использование системы.Коллекции.Общий;
использование System.Data;
использование System.Linq;
использование System.Net;
используя системы.Нет.Протокол HTTP;
использование системы.Нарезание резьбы.Задачи;
используя системы.Веб.Протокол HTTP;
использование System.Web.Http.Description;

прототип пространства имен3.Контроллеры
{
публичный класс ValuesController : ApiController
{
Database_Access_Data.dblayer дБ = новый Database_Access_Data.дБ();

[HttpPost]
[Route("api/Values/SendLocation")]
общественные ihttpactionresult с торговая([FromBody]расположение в CS)
{
пробовать
{
if (!ModelState.Функция IsValid)
{
возврат BadRequest(ModelState);
}
dblayer.Торговая(КС);
возвращение " ОК " ("успех");
}
catch (исключение e)
{
возврат Ok("что-то пошло не так" + e);
}

}

[HttpPost]
[Route("api/Values/GetLocationHistory")]
public IHttpActionResult GetLocationHistory([FromBody]LocationHistory cs)
{
пробовать
{
if (!ModelState.Функция IsValid)
{
возврат BadRequest(ModelState);
}
таблица var = dblayer.LocationHistory(КС);
возвращение ОК(табл.);
}
catch (исключение e)
{
возврат Ok("что-то пошло не так" + e);
}

}
[HttpPost]
[Route("api/Values/SendDistance")]
public IHttpActionResult SendDistance([FromBody]Location cs)
{
пробовать
{
if (!ModelState.Функция IsValid)
{
возврат BadRequest(ModelState);
}
dblayer.SendDistance(КС);
возвращение " ОК " ("успех");
}
catch (исключение e)
{
возврат Ok("что-то пошло не так" + e);
}

}

[HttpGet]
[Route("api/Values/GetUser")]
публичный набор данных GetUser()
{
Набор данных ds = dblayer.Функций getUser();
возврат ДС;
}
[HttpPost]
[Route("api/Values/FlagingDevice")]
public IHttpActionResult FlagingDevice([FromBody]FlagingDevice cs)
{
пробовать
{
if (!ModelState.Функция IsValid)
{
возврат BadRequest(ModelState);
}
таблица var = dblayer.FlagingDevice(КС);
возвращение ОК(табл.);

}
catch (исключение e)
{
возврат Ok("что-то пошло не так" + e);
}

}

[HttpPost]
[Route("api/Values/SendBox")]
public IHttpActionResult SendBox([FromBody]Box cs)
{
пробовать
{
if (!ModelState.Функция IsValid)
{
возврат BadRequest(ModelState);
}
dblayer.SendBox(cs);

возвращение " ОК " ("успех");
}
catch (исключение e)
{
возврат Ok("что-то пошло не так" + e);
}

}

[HttpGet]
[Route("api/Values/FlagingDevice(WithoutParameters)")]
публичный набор данных FlagingDevice1()
{
Набор данных ds = dblayer.FlagingDeviceWithoutParameters();
возврат ДС;
}







}
}

Что я уже пробовал:

Я пытался найти решение в интернете, но безрезультатно.

F-ES Sitecore

Я не вижу никакого js в вашем текущем решении. Отформатируйте код правильно и сократите его только до соответствующих функций, а также включите свой js.

1 Ответов

Рейтинг:
0

Sk Imad

Попробуйте использовать этот код для автоматического заполнения текстового поля

<input type="text" value="" placeholder="Search" id="txtSearch" />

  $(document).ready(function () {
        $("#txtSearch").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "@Url.Content("~/ControlerName/MethodName")",
                    type: "POST",
                    dataType: "json",
                    data: { letters: request.term },
                    success: function (data) {
                        response($.map(JSON.parse(data), function (item) {
                            return item;
                        }))

                    },
                    error: function (response) {
                    },
                    failure: function (response) {
                    }
                })
            },
  	focus: function (event, ui) {
                return false;  
            },
            minLength: 1
        });
    })