Я импортировал сценарии и форматирование для select2 и следовал инструкциям, а также пробовал то, что люди предлагали в ответах на подобные вопросы, но ничего не получается, поэтому я решил спросить здесь, и я благодарен за любую предложенную помощь.
Я хочу выпадающий список select2, который при вводе вызывает функцию в контроллере с учетом того, что вы ввели, и возвращает контакты из БД с этим текстом в именах, который возвращается к представлению и заполняет раскрывающийся список, динамически.
Это раскрывающийся код:
<select class="form-control select2-container--bootstrap4" id="telephone-contacts-list"></select>
Вот javascript. Это немного повсеместно, потому что я пробовал множество разных вещей, как упомянуто:
$('#telephone-contacts-list').select2({
theme: 'bootstrap4',
minimumInputLength: 2,
placeholder: "Search for a contact...",
allowClear: true,
ajax: {
delay: 250,
url: 'GetContactsList',
dataType: "json",
type: "GET",
data: function (params) {
var query = {
search: params.term,
type: 'public',
detailType: "telephone"
}
// Query parameters will be ?search=[term]&type=public
return query;
},
processResults: function (data) {
return { results: data };
}
},
formatResult: itemFormatResult,
formatSelection: function (item) {
return item.name;
},
escapeMarkup: function (m) { return m; }
});
function itemFormatResult(item) {
var markup = "<option value='" + item.value+"'>"+item.name+"</option>";
return markup;
}
Это функция контроллера, которая возвращает сериализованный объект, который имеет поля имени и значения:
Public Function GetContactsList(search As String, type As String, detailType As ContactDetailModel.DetailType) As JsonResult
Dim l
l = (From c In DB.Contacts Order By c.PrimaryName.FullName Descending Select New With {.name = c.PrimaryName.FullName, .value = c.ID}).ToArray
Return Json(l, JsonRequestBehavior.AllowGet)
End Function
Обратите внимание, я хочу, чтобы раскрывающийся список заполнялся таким образом, чтобы свойство name списка выбора отображалось на свойство name, а свойство значения списка select для сопоставления со свойством value для каждого элемента, поэтому я могу сделайте дальше javascript wizar dry с этим позже.
Так что да, может кто-нибудь, пожалуйста, сообщите мне, что я делаю неправильно и что мне нужно сделать правильно, чтобы заставить его работать как задумано? Как вы, вероятно, видите, я довольно новый программист, и поэтому могу бороться с ответами, которые требуют слишком большого количества базовых знаний, но, тем не менее, я бы принял их за пустяки, поэтому любая помощь очень ценится!
Приветствия