2009-03-20 8 views
2

私はIListにバインドされているGridviewを持っています。 私は(私だけが必要な項目をフェッチ)「より安全な方法は、」ページングをしたいのですが、私はこのNHibernateのページングとバインドからグリッドビュー

public Ilist<Item> GetItems(int from, int number){ ... } 

ように私のリポジトリにmetodを作成した事は、私はそれを結合するwheenは、それだけ、です私にはn個のアイテムが表示され、ページングコントロールは表示されません。私は

public int CountItems{ get{ ... } } 

と私の結果セットで持っているどのように多くの要素にGridViewを伝える方法を見つけることを試みたが、私はGVにこの値を伝えるために場所を見つけるdidntの。

ここでの戦略は何ですか? ObjectDSが必要ですか?私は信じることを断る!

ページングを行うにはどうすればよいですか?

答えて

0

残念ながら、Object DataSourceまたはカスタムデータソースを実装する必要があります。ここには、http://msdn.microsoft.com/en-us/library/5aw1xfh3.aspxと記載されているmsdnドキュメントへのリンクがあります。 Datagridはあなたの望むことをサポートしていましたが、MSはGridViewでも同じことをしていませんでした。

ダミーのカスタムデータソースを作成して、それ以外のプロセスを制御するために必要なメソッド/イベントを公開するオプションがあると思います。

+0

私が期待していた答えではありませんが、ちょっと!あなたは何をすることができますか? Thnks !!!!! –

0

また、同じ問題が発生しましたimplementing paging in an ASP.NET gridview using NHibernate.独自のページング機能を実装する場合、これはGridViewの不満な制限です。

当時、私がいた見ただけで3つのオプション:

  1. は、GridViewコントロールから継承する派生クラスを作成GridViewコントロールとのインタフェースカスタム ナビゲーション機能
  2. を実装して別のユーザーコントロールを作成しますそして は、カスタムナビゲーション機能を追加
  3. 利用のObjectDataSource

私は基本的な#1の実装を行っていました。これは#2よりも簡単であり、#3を使用するよりもはるかに好ましいものでした。これは、プロジェクトで使用していたモデルビュープレゼンターのパターンユニットテストをより困難にする)。

1

NHibernateにはIQueryableをDataTableに変換するネイティブクラスがあります ObjectDataSourceを作成し、NHybernateのDAOからフィードする必要があります。 ObjectDataSourceには、ページング、フィルタリング、編集を行うためにDataTableが必要です。

関連する問題