0
我使用選擇二如下插件:選擇二阿賈克斯 - 有選擇價值觀的問題
JS
function initAssignmentsAjax() {
$("#assignments").empty();
$("#assignments").select2({
placeholder: "Select an assignment",
allowClear: true,
ajax: {
url: "/Home/GetAssignments",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: processAssignmentsResult,
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work TUTAJ WCHODZI PO assignmentsTemplateSelectionHandler
minimumInputLength: 3, //1
templateSelection: assignmentsTemplateSelectionHandler,
templateResult: assignmentsTemplateResultHandler
})
}
function processAssignmentsResult(data, params) {
var json = JSON.parse(data.Data);
var x = $.map(json, function (item) {
return {
text: item.ProjectNumber + ' : ' + item.BatchName,
children: item.ChildItems,
};
})
return { results: x };
}
HTML
<select id="assignments" style="width: 500px;" ></select>
當我鍵入它工作正常UI中的值 - 它將Ajax查詢發送給控制器,最後呈現控件中的值。
我還增加了以下功能(基於How to programmatically inject search queries into Select2 v4?)到programaticly輸入值到搜索
function selectAssignments(term) {
$("#assignments").empty();
var assignmentElementControl = $("#assignments");
assignmentElementControl.select2('open');
// Get the search box within the dropdown or the selection
// Dropdown = single, Selection = multiple
var $search = assignmentElementControl.data('select2').dropdown.$search || assignmentElementControl.data('select2').selection.$search;
// This is undocumented and may change in the future
$search.val(term);
$search.trigger('keyup');
}
當我重新加載頁面,並利用瀏覽器控制檯這個函數(或者其綁定到UI的一些按鈕),它也很好。 但是,當我第一次嘗試通過在Select2控件(此傳遞)中輸入進行搜索時停止工作,但是當我嘗試使用此函數時,它不會從Select2控件運行ajax搜索查詢(它打開搜索列表,顯示輸入的查詢,但不火ajax)。那麼,使用Select2用戶界面搜索的功能是否會破壞此功能?
我嘗試之前 - 無濟於事。但謝謝你的回覆 – user3057544