2011-02-07 12 views
1

私はTelerik mvcグリッドを持っています。私は仕事を整理しようとしています。グリッドをモデルコレクションにバインドします。モデルには、データレイヤーとは異なるフィールド名があります。
ソートボタンをクリックすると、グリッドはソート列の名前を、バインディングしているモデルのプロパティ名として渡します。私はそれが私のデータアクセス層と一致するように、別の名前に設定したいと思います。私はこれまで、関連するデータベースフィールド名を指定するモデルのプロパティに属性を追加することでこれを行ってきました。 Telerikのグリッドには何か類似点はありますか?
[Column(Name = "Myname")]Telerik mvc grid、Modelフィールドとdbフィールド名の関係

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

答えて

1

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

[GridAction] 
    public ActionResult AjaxIndex() 
    { 
     // Get all of the orders 
     return View(new GridModel(orderBll.GetAll())); 
    } 
+1

を私のデータ・セットをロードし、サーバー上でソートするには大きすぎます。私はsqlにデータをソートしてから最初のページを提供しなければなりません – Andrey

+0

あなたがしようとしているもののソースコードをいくつか使って、私があなたを助けることができるとは思わない。モデルの名前をDBに保存しておき、グリッドのタイトルを変更することはできません。私はUIがフィールド名を知ってはならないが、あなたの問題を解決するかもしれないことを知っている。 –

0

私が理解しているように、あなたのモデルはあなたが照会しているものであり、データベースに照会できるように一貫していなければなりません。あなたのグリッド列の見出しで異なるテキストをしたい場合は、Title()方法でそれを行うことができ、列バインドする場合:

.Columns(columns => 
{ 
    columns.Bound(a => a.Surname).Title("Family name"); 
.... 
関連する問題