【问题标题】:Select2.js v4.0: How transmit filter text to ajax source data?Select2.js v4.0:如何将过滤文本传输到ajax源数据?
【发布时间】: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 变量中接收到的参数始终为空。

您知道如何将参数中的下拉搜索文本传输到服务器方法吗?

【问题讨论】:

    标签: javascript ajax asp.net-mvc jquery-select2 jquery-select2-4


    【解决方案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 选项(转换为查询参数)以返回一个对象,该对象的键与您要查找的参数匹配。

    【讨论】:

      猜你喜欢
      • 2015-10-08
      • 2015-10-17
      • 2016-01-27
      • 2018-05-20
      • 2015-04-23
      • 1970-01-01
      • 2015-05-18
      • 2017-02-08
      • 1970-01-01
      相关资源
      最近更新 更多