Select2.js v4.0:如何将过滤文本传输到ajax源数据?
Posted
技术标签:
【中文标题】Select2.js v4.0:如何将过滤文本传输到ajax源数据?【英文标题】:Select2.js v4.0: How transmit filter text to ajax source data? 【发布时间】:2015-10-10 04:22:35 【问题描述】:我正在使用非常令人兴奋的库 select2.js4.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 变量中接收到的参数始终为空。
您知道如何将参数中的下拉搜索文本传输到服务器方法吗?
【问题讨论】:
【参考方案1】:默认情况下,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
选项(转换为查询参数)以返回一个对象,该对象的键与您要查找的参数匹配。
【讨论】:
以上是关于Select2.js v4.0:如何将过滤文本传输到ajax源数据?的主要内容,如果未能解决你的问题,请参考以下文章
Select2.js v4.0:如何使用本地数组数据源设置默认选择值?