C# 如何修改此Select2 javascript以启用分页?

C# 如何修改此Select2 javascript以启用分页?,c#,javascript,jquery,linq-to-entities,jquery-select2,C#,Javascript,Jquery,Linq To Entities,Jquery Select2,我对javascript不太熟悉,所以这里需要帮助。我有一个返回客户列表(2000+)的方法,因此Select2下拉列表挂起。我想启用分页,但不确定需要更改什么。以下是我的javascript代码: var GetCutomerDDL = function(cient) { var Json = {}, customers = []; $ddlCustomers.select2('val', ''); Json.client = cient;

我对javascript不太熟悉,所以这里需要帮助。我有一个返回客户列表(2000+)的方法,因此Select2下拉列表挂起。我想启用分页,但不确定需要更改什么。以下是我的javascript代码:

var GetCutomerDDL = function(cient) {

    var Json = {},
        customers = [];

    $ddlCustomers.select2('val', '');
    Json.client = cient;

    $.post(urlContent + 'Cutomer/GetCustomerDDL', Json, function(data) {
    }, 'json').done(function(data) {
        customers = data;
        $ddlCustomers.select2({
            placeholder: "Select Customer(s)",
            allowClear: true,
            multiple: true,
            data: customers
        });
    });

};

GetCustomerDDL
使用LINQ只返回所有客户,但我想启用分页,所以不要一次在下拉列表中加载超过2000条记录。我需要在javascript和服务器端更改什么?

Select2控件包括。这可能就是你要找的

Scroll2的主页位于以下位置:

在服务器端,您需要使用
Skip()
Take()
LINQ操作符向前跳过数据,并仅从数据中获取一定数量的项。选择2应将要跳过的项目传递给控制器

编辑:

尝试更改此选项:

$.post(urlContent + 'Cutomer/GetCustomerDDL', Json, function(data) {
}, 'json').done(function(data) {
    customers = data;
    $ddlCustomers.select2({
        placeholder: "Select Customer(s)",
        allowClear: true,
        multiple: true,
        data: customers
    });
});
为此:

$ddlCustomers.select2({
    ajax: {
      url: urlContent + 'Cutomer/GetCustomerDDL',
      dataType: 'json',
      data: function (term, page) {
        return {
          q: term, // search term
          pageLimit: 10,
          page: page, // page number
          client: client
        };
      },
      results: function (data, page) {
        var more = (page * 10) < data.total; // whether or not there are more results available
        return { results: data.customers, more: more };
      }
    },
});
示例json结果:

{ customers: [...], total: 2000 }

我知道如何处理服务器端,我正在查看Select2的主页,但我不知道如何修改javascript。Select2页面有一个用于无限加载的javascript示例。关键是正确设置
ajax
属性(
url
data
results
,等等)。是的,我看到了,因为我不熟悉javascript,即使使用Select2帮助,我也不确定在我的示例中在哪里设置这些属性。我用一些示例代码更新了我的答案。希望它能有所帮助。它现在告诉我firebug控制台中的数据为空。在我能够获得从javascript传递到控制器方法的客户机值之前,但现在没有了。我的Json对象怎么了?
{ customers: [...], total: 2000 }