如何在kendo下拉列表中指定skip和take值

时间:2016-12-30 06:46:52

标签: asp.net-web-api kendo-ui kendo-dropdown

我需要将大量数据填充到kendo下拉列表中(可能会达到数百万)。所以我试图使用serverFiltering的剑道来实现这一目标。我在github上检查了他们的官方api,他们使用参数skiptake,它们似乎对他们很好。我正在尝试发送跳过并接受以下代码

$("#parentProductId").kendoDropDownList({
        filter: "startswith",
        dataTextField: "ProductName",
        dataValueField: "id",
        optionLabel: ' --Select--',
        dataSource: {
            serverFiltering: true,
            data: { 
                skip:0 , 
                take: 10
            },
            transport: {
                read: {
                    url: webApiUri + '/Product/ProductSel',
                    beforeSend: function (xhr) {
                        xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
                    }
                }
            }
        }
    });

我的Apicontroller如下: -

[Route("api/Product/ProductSel")]
public List<SpProductSel_Result> ProductGet(int skip, int take)
   {

      //return result
   }

现在我的问题是这个api控制器没有被调用。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

可能的一种可能是您需要使用正确的 transport.read 配置。使用Tranport配置时,我们将数据指定为读取的一部分请参阅下面的代码段。请参阅kendo文档transport.read.data

示例#1发送其他参数作为对象

transport: {
read: {
  url: "http://demos.telerik.com/kendo-ui/service/twitter/search",
  dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests
  data: {
    q: "html5" // send "html5" as the "q" parameter , like int skip and take 
  }
}

示例#2 - 通过返回从功能发送其他参数

 transport: {
    read: {
      url: "http://demos.telerik.com/kendo-ui/service/twitter/search",
      dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests
      data: function() {
        return {
          skip: 0,     // send 0 as the "skip" parameter
          take:10      // send 10 as the "take" parameter
        };
      }
    }
  }