- PR -

DataSetの指定行分をDataGridに表示する方法

1
投稿者投稿内容
キムチナベ
会議室デビュー日: 2004/12/26
投稿数: 15
投稿日時: 2005-11-16 16:43
宜しくお願いいたします。

DataSetに100行分のデータが入っているとし、
そのなかの指定行分(たとえば、20〜40行)をDataGridに表示したいですが、
どうすればよろしいでしょうか。

DataViewを利用してできかなと思っていろいろ試しましたが、うまくいけませんでした。

ご存知のかた、ご教授よろしくお願いいたします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-11-16 17:25
DataTableのRowsプロパティで取得できるDataRowCollectionオブジェクトのRemoveAt()メソッドで必要ない行をコレクションから外してからバインドすれば良いと思います。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-11-16 17:43
詳しい仕様がわからないのですが、連続した行の範囲を表示したいということでしょうか?しかもそれを何度も動的に切り替えたいということなんでしょうか?

ぱっと思いつくのは、データテーブルにおいてダミーカラムを作成してそこに連番を振り、その連番の範囲でFilterをかけるという方法です。
キムチナベ
会議室デビュー日: 2004/12/26
投稿数: 15
投稿日時: 2005-11-16 18:25
trapemiyaさん、一郎さん

ご回答ありがとうございます。

>詳しい仕様がわからないのですが、連続した行の範囲を表示したいということでしょうか?し>かもそれを何度も動的に切り替えたいということなんでしょうか?
何度も動的に切り替えたいです。
実現したいのはページング処理です。
DBから全部のレコードを一括でDaTaSetのロードして、ページングする際、指定頁分のレコードだけ表示しようとします。


>ぱっと思いつくのは、データテーブルにおいてダミーカラムを作成してそこに連番を振り、そ>の連番の範囲でFilterをかけるという方法です。
たしかに、これでいけると思います。
ほかの方法はありますでしょうか。


RemoveAt()メソッドは仮削除されますので、ページング処理には利用できないですね。

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-11-16 18:56
引用:

キムチナベさんの書き込み (2005-11-16 18:25) より:
RemoveAt()メソッドは仮削除されますので、ページング処理には利用できないですね。



仮削除というのは何のことですか?
もしかして、DataRow.Delete()メソッドと勘違いしていますか?

ちなみに私はDataRowCollection.RemoveAt()と自作のページ切り替えコントロールを使用して、Repeaterでのページ切り替えを実装したことがあります。
キムチナベ
会議室デビュー日: 2004/12/26
投稿数: 15
投稿日時: 2005-11-16 19:50
一郎 さん

>仮削除というのは何のことですか?
>もしかして、DataRow.Delete()メソッドと勘違いしていますか?
たいへん申し訳ございません。たしかにわたしが勘違いしました。

>ちなみに私はDataRowCollection.RemoveAt()と自作のページ切り替えコントロールを使用し>て、Repeaterでのページ切り替えを実装したことがあります。
さっそく自分もためして見ます。

どうもありがとうございました。

art
常連さん
会議室デビュー日: 2005/05/10
投稿数: 25
投稿日時: 2005-11-17 13:37
DataGrid1.PageSize = 20; // 一覧1ページに表示する行数
DataGrid1.CurrentPageIndex = 1; // 表示したいページ(0〜)
DataGrid1.DataBind();

↑DataGridに全行分セットして、これでCurrentPageIndexだけ変えるだけじゃいけないのでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)