-1

サーバー側のデータのフィルタリングと並べ替えでブロックの問題があります。私の Kendo Grid はリクエストを C# バックエンドに送信します。これが起こることです:

すべての Employee オブジェクトを取得します (データ アクセスを使用します) 従業員には、FirstName、LastName などの個人情報を含む Person オブジェクトがあります。また、GroupName もあります。したがって、私のスキームは次のとおりです。

schema: {
    model: {
        id: "ID",
        fields: {
            FirstName: { type: "string", from: "Person.FirstName" },
            LastName: { type: "string", from: "Person.LastName" },
            GroupName: { type: "string" },
        }
    }
},

名または姓でフィルターまたは並べ替えを使用すると、属性「Person.FirstName」で従業員をフィルター処理しようとします。しかし、その人は私の DataAccess オブジェクトへの追加であるため、データベースにはありません。

GroupName でフィルターまたは並べ替えを使用すると、グループ名のみをフィルター処理しようとします。ただし、グループ名はバックエンドで入力され、EmployeeGroup.Name から取得されます

したがって、これらの行のいずれかでサーバー側をフィルタリングすることはできません。カスタム属性または子属性でフィルタリングできる可能性があるかどうか知りたいです。

前もって感謝します!

4

1 に答える 1

0

この nuget パッケージが役立ちます: https://www.nuget.org/packages/KendoGridBinderEx

ただし、必要なすべてのプロパティを含む ViewModel オブジェクトを作成する必要があるため、

class EmployeeVMO
{
  public string FirstName {get;set;}
  public string LastName {get;set;}
  public string GroupName {get;set;}
}

この ViewModel オブジェクトを実際のデータベース オブジェクトにマップするには、AutoMapper が必要です。これらのマッピングが正しく適用されると、KendoGridBinderEx を使用して、Model を ViewModel に (およびその逆に) 自動的にマップすることができます。

コード例については、このソース ファイルを確認してください。

このライブのを参照してください。

于 2014-08-21T18:38:41.607 に答える