我需要将大量数据填充到kendo下拉列表中(可能会达到数百万)。所以我试图使用serverFiltering
的剑道来实现这一目标。我在github上检查了他们的官方api,他们使用参数skip
和take
,它们似乎对他们很好。我正在尝试发送跳过并接受以下代码
$("#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控制器没有被调用。我在这里做错了什么?
答案 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
};
}
}
}