我使用select2
作为autocomplete
并选择多个选项。以下是我initialize
select2
$(".selectpickerphone").select2({
allowClear: true,
minimumInputLength: 2,
ajax: {
cache: false,
dataType: "json",
type: "GET",
url: "@Url.Action("GetContactNumbers ", "HMController")",
data: function(searchTerm) {
return searchTerm;
},
results: function(data) {
debugger;
if (data.isUser) {
return;
}
return {
results: $.map([data], function(item) {
return {
text: item.name,
id: item.PhoneNum,
data: item
}
})
};
}
},
formatResult: function(response) {
data = response.data;
console.log(data);
this.description =
'<div id="fmu_select2_ajax_result">' +
"<div>Nom du produit : " + data.name + "</div>" +
"<div>" +
"<div>" + data.PhoneNum+ "</div>" +
"</div>" +
'</div>';
return this.description;
},
formatSelection: function(response) {
data = response.data;
return data.PhoneNum+ " - " + data.name;
},
escapeMarkup: function(m) {
return m;
},
dropdownCssClass: "bigdrop"
});
以下是我的JsonResult
- actionmethod
[HttpGet]
public JsonResult GetContactNumbers(string term)
{
using (_db = new Context())
{
_adRep = new ADRP();
var contactList = _adRep.FetchCustomerUserPhone(_db,term);
return Json(contactList, JsonRequestBehavior.AllowGet);
}
}
我在网络标签中查看时得到以下回复。
[{"name":"Guruprasad Rao","isUser":true,"PhoneNum":"8495000049"},
{"name":"Guruprasad Rao","isUser":false,"PhoneNum":"8495000050"},
{"name":"Test","isUser":false,"PhoneNum":"8495000051"}]
但无论如何,我放置在results
ajax
select2 v4.0.1
选项中的调试器都没有被命中,因此也没有显示数据。我如何收到它作为回应并显示它?
更新
我正在使用Required date
答案 0 :(得分:0)
找到解决方案
我必须在processResults
中使用results
而不是$.ajax
。了解我实际访问 official site 的时间。可能是version > 4.0
已更改。
processResults: function(data) {
return {
results: $.map(data, function(item) {
return {
text: item.name,
id: item.PhoneNum,
data: item
}
})
};
}
在此版本之后,formatResult
和formatSelection
已更改为templateResult
和templateSelection
。的 强>
Docs here
强>
答案 1 :(得分:0)
我尝试在asp.net mvc 5中绑定。
我使用了网络服务,Controller Http post方法,Web Api 2 ,但是在select2的回调事件中没有使用。
使用Asp.net Generic handler
生成回调结果,然后尝试将其绑定到select2。