- - PR -
DataSetの指定行分をDataGridに表示する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-16 16:43
宜しくお願いいたします。
DataSetに100行分のデータが入っているとし、 そのなかの指定行分(たとえば、20〜40行)をDataGridに表示したいですが、 どうすればよろしいでしょうか。 DataViewを利用してできかなと思っていろいろ試しましたが、うまくいけませんでした。 ご存知のかた、ご教授よろしくお願いいたします。 | ||||
|
投稿日時: 2005-11-16 17:25
DataTableのRowsプロパティで取得できるDataRowCollectionオブジェクトのRemoveAt()メソッドで必要ない行をコレクションから外してからバインドすれば良いと思います。
| ||||
|
投稿日時: 2005-11-16 17:43
詳しい仕様がわからないのですが、連続した行の範囲を表示したいということでしょうか?しかもそれを何度も動的に切り替えたいということなんでしょうか?
ぱっと思いつくのは、データテーブルにおいてダミーカラムを作成してそこに連番を振り、その連番の範囲でFilterをかけるという方法です。 | ||||
|
投稿日時: 2005-11-16 18:25
trapemiyaさん、一郎さん
ご回答ありがとうございます。 >詳しい仕様がわからないのですが、連続した行の範囲を表示したいということでしょうか?し>かもそれを何度も動的に切り替えたいということなんでしょうか? 何度も動的に切り替えたいです。 実現したいのはページング処理です。 DBから全部のレコードを一括でDaTaSetのロードして、ページングする際、指定頁分のレコードだけ表示しようとします。 >ぱっと思いつくのは、データテーブルにおいてダミーカラムを作成してそこに連番を振り、そ>の連番の範囲でFilterをかけるという方法です。 たしかに、これでいけると思います。 ほかの方法はありますでしょうか。 RemoveAt()メソッドは仮削除されますので、ページング処理には利用できないですね。 | ||||
|
投稿日時: 2005-11-16 18:56
仮削除というのは何のことですか? もしかして、DataRow.Delete()メソッドと勘違いしていますか? ちなみに私はDataRowCollection.RemoveAt()と自作のページ切り替えコントロールを使用して、Repeaterでのページ切り替えを実装したことがあります。 | ||||
|
投稿日時: 2005-11-16 19:50
一郎 さん
>仮削除というのは何のことですか? >もしかして、DataRow.Delete()メソッドと勘違いしていますか? たいへん申し訳ございません。たしかにわたしが勘違いしました。 >ちなみに私はDataRowCollection.RemoveAt()と自作のページ切り替えコントロールを使用し>て、Repeaterでのページ切り替えを実装したことがあります。 さっそく自分もためして見ます。 どうもありがとうございました。 | ||||
|
投稿日時: 2005-11-17 13:37
DataGrid1.PageSize = 20; // 一覧1ページに表示する行数
DataGrid1.CurrentPageIndex = 1; // 表示したいページ(0〜) DataGrid1.DataBind(); ↑DataGridに全行分セットして、これでCurrentPageIndexだけ変えるだけじゃいけないのでしょうか? |
1