Web Apiサーバー側のソート機能を備えたグリッドがあります。私はフィルタリングを追加する必要があります。グリッドのデータソースがフィルタリング引数をWeb APIコントローラに送信すると、Filterオブジェクトはnullではなく常に空です。剣道グリッドサーバーサイドフィルタリング(MVCを使用)
var myTeamGridDataSource = new kendo.data.DataSource({
serverPaging: true,
serverSorting: true,
serverFiltering: true,
schema: {
data: "data",
total: "count"
},
pageSize: 10,
transport: {
read: {
url: baseMyTeamUrl, // web api
dataType: "json",
type: "POST",
}
},
sort: {
field: "Name",
dir: "asc"
}
});
アクション::ここに私のセットアップ
グリッドのデータソースである
public HttpResponseMessage KendoGridMyTeam(GridInputModel inputModel)
{
...
}
GridInputModel.cs
public class GridInputModel
{
public int Page { get; set; }
public int PageSize { get; set; }
public int Skip { get; set; }
public int Take { get; set; }
public List<GridInputSortModel> Sort { get; set; }
public List<GridInputFilterModel> Filter { get; set; }
}
GridInputFilterModel.cs
public class GridInputFilterModel
{
public GridInputFilterModel()
{
filters = new List<GridInputFilterModel>();
}
public string field { get; set; }
public string Operator { get; set; }
public object value { get; set; }
public string logic { get; set; }
public List<GridInputFilterModel> filters { get; set; }
}
はリクエストボディ
take=10&skip=0&page=1&pageSize=10&sort[0][field]=Name&sort[0][dir]=asc
&filter[filters][0][field]=Name
&filter[filters][0][operator]=eq
&filter[filters][0][value]=cling
&filter[logic]=and
GridInputModel「GridInputModel inputModelは、」インスタンス化、およびソートオブジェクトが設定され、その機能がうまく動作します。しかし、クライアントに設定され、サーバーに送信されたときのフィルターは空です。検索の束の後、私はサーバーサイドグリッドフィルタリングの現代的な例を見つけることができません。これは、リクエストにFilterオブジェクトを作成しますが、フィルターは、空です
[DataSourceRequest] DataSourceRequest request
:あなたは私がKendo.Mvcライブラリを使用することを示唆しています。助言がありますか?私が躊躇するオプションの1つは、parameterMapを使用して、クエリ文字列に沿ってフィルタを送信することです。もし私がしなければならない、しかし、誰かがこの仕事を持っている必要があります。