1

Telerik mvc グリッドがあります。ソートを機能させようとしています。グリッドをモデル コレクションにバインドしています。モデルのフィールドの名前は、データ レイヤーとは異なります。
並べ替えボタンをクリックすると、グリッドは、バインドしているモデルのプロパティ名として並べ替え列の名前を渡します。データアクセスレイヤーと一致させるために、別の名前に設定したいと思います。関連するデータベース フィールド名を指定するモデルのプロパティに属性を追加することで、以前にこれを行いました。Telerik のグリッドに似たものはありますか?
[Column(Name = "Myname")] を試しました

しかし、それは無視されているようです。
これらの名前を知るためにグリッドを構成したくありません。UI レイヤーは、DB レイヤーのフィールド名を認識する必要はありません。モデル内でこれを設定する方法はありますか?

4

2 に答える 2

1

あなたが何をしようとしているのか理解できるかどうかわかりません。サンプルコードがおそらく役立つでしょう。そうは言っても、私はあなたの質問に答えようとします。Telerikグリッドの並べ替えに使用しているコントローラーのメソッドの名前をオーバーライドできます。これと同じ状況で、並べ替えに問題はありません。グリッドをモデルに直接バインドしていますが、データアクセスロジックにまったくアクセスしていません。telerikグリッドはLinqを使用するため、コレクションで並べ替えを実行するだけで、データアクセスロジックに再接続する必要はありません。Telerikグリッドで並べ替えを行うときに呼び出すコントローラーメソッドの例を含めました。Orderbll.GetAllは、注文のコレクションを返します。

[GridAction]
    public ActionResult AjaxIndex()
    {
        // Get all of the orders
        return View(new GridModel(orderBll.GetAll()));
    }
于 2011-03-04T21:38:27.233 に答える
0

私が理解しているように、モデルはクエリしているものであり、データベースをクエリできるように一貫性がある必要があります。グリッド列の見出しに別のテキストが必要な場合はTitle()、列をバインドするときにメソッドを使用してそれを行うことができます。

.Columns(columns =>
{
    columns.Bound(a => a.Surname).Title("Family name");
....
于 2013-03-04T11:25:23.577 に答える