1

发布版本(选择 4.0.1)

HTML

<select id="search_customers" style="width: 300px;"></select>

Javascript:

$("#search_customers").select2({
  multiple: false,
  allowClear: true,
  ajax: {
    url: "@Url.Action("
    SearchCustomers ", "
    Home ")",
    dataType: 'json',
    delay: 250,
    data: function(params) {
      return {
        id: params.term, // search term
      };
    },
    processResults: function(data, params) {
      return {
        results: data
      } // Data is a List<T> of id an text
    },
  }
});

下拉菜单有效,我可以看到我的记录,但是,当我单击其中一个选项时,框会关闭,并且不会显示所选记录。我的盒子是这样的

捕获

我已经尝试了我能想到的一切。该问题出现在所有浏览器中。返回的数据是 id/text 对的列表。

控制器代码

var customers = this.service.SearchCustomers(id).Select(x => new { id = x.CustomerID, text = x.CustomerName }).ToList();

return Json(customers, JsonRequestBehavior.AllowGet);
4

1 回答 1

0

出于某种原因,我的客户 ID 有前导空格。(旧的 ERP 系统),因此在客户 ID 上的 select 语句中添加 .Trim() 调用修复了它。显然 select2 不喜欢“56”,但“56”很好!

于 2016-03-04T21:48:53.667 回答