Select2.js v4.0: 如何将过滤器文本传输到 ajax 源数据?
Select2.js v4.0: How transmit filter text to ajax source data?
我正在使用非常令人兴奋的库 select2.js 4.0 版
我可以显示来自动态 ajax 数据的下拉菜单,但 dropdown2 生成的增强下拉菜单允许用户输入过滤文本,我想将此文本作为过滤数据的参数发送到服务器方法ajax 返回。
我正在尝试 asp mvc 项目
javascript代码:
$(".example-select2").select2({
ajax: {
dataType: 'json',
url: '@Url.Action("GetSrcMethode", "GetCheckSet")',
processResults: function (data)
{
return {results: JSON.parse(data)};
}
//what I am looking for
//javascript code for sending search as parameter
}
});
我的 C# 方法是
public JsonResult GetSrcMethode(string searchTerme //!!!always null!!!)
{
//...
// get data and filter it from searchTerme
//...
Object json = JsonConvert.SerializeObject(filteredData);
return Json(json, JsonRequestBehavior.AllowGet);
}
searchTerme 变量中收到的参数始终为空。
你知道如何将参数下拉列表的搜索文本传输到服务器方法吗?
默认情况下,Select2 将搜索词作为 q
查询参数发送。因此,为 AJAX 请求生成的 url 是 /url/?q=search+terms
。在您的情况下,您应该能够更改要命名的方法的参数 q
,然后您可以在过滤时将其用作传入的搜索词。
public JsonResult GetSrcMethode(string q)
{
//...
// get data and filter it from q
//...
Object json = JsonConvert.SerializeObject(filteredData);
return Json(json, JsonRequestBehavior.AllowGet);
}
或者,您可以将 ajax.data
选项(转换为查询参数)更改为 return 具有与您要查找的参数匹配的键的对象。
我正在使用非常令人兴奋的库 select2.js 4.0 版
我可以显示来自动态 ajax 数据的下拉菜单,但 dropdown2 生成的增强下拉菜单允许用户输入过滤文本,我想将此文本作为过滤数据的参数发送到服务器方法ajax 返回。
我正在尝试 asp mvc 项目
javascript代码:
$(".example-select2").select2({
ajax: {
dataType: 'json',
url: '@Url.Action("GetSrcMethode", "GetCheckSet")',
processResults: function (data)
{
return {results: JSON.parse(data)};
}
//what I am looking for
//javascript code for sending search as parameter
}
});
我的 C# 方法是
public JsonResult GetSrcMethode(string searchTerme //!!!always null!!!)
{
//...
// get data and filter it from searchTerme
//...
Object json = JsonConvert.SerializeObject(filteredData);
return Json(json, JsonRequestBehavior.AllowGet);
}
searchTerme 变量中收到的参数始终为空。
你知道如何将参数下拉列表的搜索文本传输到服务器方法吗?
默认情况下,Select2 将搜索词作为 q
查询参数发送。因此,为 AJAX 请求生成的 url 是 /url/?q=search+terms
。在您的情况下,您应该能够更改要命名的方法的参数 q
,然后您可以在过滤时将其用作传入的搜索词。
public JsonResult GetSrcMethode(string q)
{
//...
// get data and filter it from q
//...
Object json = JsonConvert.SerializeObject(filteredData);
return Json(json, JsonRequestBehavior.AllowGet);
}
或者,您可以将 ajax.data
选项(转换为查询参数)更改为 return 具有与您要查找的参数匹配的键的对象。