我无法在相关数据(多对多)上过滤剑道数据源。我使用ASP.NET WebAPI2和DataSourceRequest来捕获服务器上的请求。然后使用IQueryable上的.ToDataSourceResult()扩展方法获取数据。
我知道这篇文章http://blogs.telerik.com/kendoui/posts/12-11-29/the_facts_on_using_kendo_ui_with_asp_net_webapi
我的数据结构如下: -
客户 - >客户地址 - >地址
客户地址是客户与客户之间的联接表。地址表。客户和客户地址上都有一个导航属性。
Kendo数据源如下: -
var customers = new kendo.data.DataSource({
transport: {
read: {
url: "api/customers", type: "GET"
}
},
pageSize: 10,
page: 1,
serverPaging: true,
serverFiltering: true,
type: "webapi",
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "CustomerID"
}
}
});
过滤器需要应用于Address表中的字段。即。 AddressLine1 =“{search param}”
我尝试过以下方法: -
var filters = {
logic: "or",
filters: [
{field: "FirstName",operator: "contains",value: "xyz"},
{field: "LastName",operator: "contains",value: "xyz"},
{field: "CustomerAddress.Address.AddressLine1",operator: "contains",value: "xyz"},
]
};
customers.filter(filters);
其中前两个过滤器工作得非常好。我在queryable上做了一个.Include(),地址信息加载得很好。
如何使用kendo DataSourceRequest执行此操作?