- PR -

GridViewの総レコード数の取得について

投稿者投稿内容
honey bee
会議室デビュー日: 2006/06/14
投稿数: 4
投稿日時: 2006-06-14 16:23
初めての書き込みです。文章おかしいところがありましたらすみません。

GridViewの総レコード数を取得したいのですがうまくいきません。
aspx側でLabelを配置し、値はPage_Loadの場所でGridViewの総レコード数を
うまく取得し(メンバなどで)と考えていましたが、それらしきものが見当たらず、
仕方がないので
・総ページ数をPageCountで取得し、PageSize*(PageCount-1)+(最後のページの行数)
で総レコード数を取得しようかと考えています。
しかしながら、最後のページの行数を取得する方法がわからず…
どなたかご存知の方いらっしゃいましたらご教授願います。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-06-14 16:30
こんにちは。

VisualStudio2005 になってからは ASP.NET の開発を行っていないので、もしかする
と変なことを書いているかもしれませんが。

GridView.Rows.Count とかで取れませんか?>行数
あとはデータバインドしているようだったら、取得もとの DataTable.Rows.Count とか。
# もしかすると DataTable とかじゃないかもしれないですが、そんな感じで。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-06-14 16:30
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30536&forum=7&4

ここで話題になりましたね。
honey bee
会議室デビュー日: 2006/06/14
投稿数: 4
投稿日時: 2006-06-14 16:41
「ぽぴ王子」さま>ご返答どうもありがとうございました。Rows.Countだとそのページの行数しかとれないのです。

「どっとねっとふぁん」さま>いつもご参考にさせていただいております!
ご返答どうもありがとうございます。やはり別の場所で値を取得してきて…と、こちらの方法でがんばるしかないのですね。
どうもありがとうございましたm(_ _)m
honey bee
会議室デビュー日: 2006/06/14
投稿数: 4
投稿日時: 2006-06-15 14:04
会社のMさんが次のやり方を見つけてくださったので、2度DB処理をしなくともGridViewの値を取得することができました。

DataView dv = (DataView)ObjectDataSource1.Select();
int cnt = dv.Count;

これでGridViewの総レコード数が取得できます。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-06-15 14:12
こんにちは。

会社のMさん(イニシャルでも個人名を出すのはあまり感心しませんが……)が見つけてく
ださった方法って、私が書いた

引用:

あとはデータバインドしているようだったら、取得もとの DataTable.Rows.Count とか。
# もしかすると DataTable とかじゃないかもしれないですが、そんな感じで。


と同じことですかね?

いやまぁ、解決したならそれでいいんですけど。
honey bee
会議室デビュー日: 2006/06/14
投稿数: 4
投稿日時: 2006-06-15 14:27
ぽぴ王子さま

えっとですね、私もドットネット初心者で表現がうまくできないのですが、
GridViewではRows.Countだとそのページに出ているGridViewの行カウントしか取れないのです。
(たとえばPageSizeが10ならば10のように...)
開発環境を書かなかった私がとても悪いのですが、VisualStudio2005を使ってます。
DataTableがヘルプで見つけられないので、ぽぴ王子さまの環境は違うのかも知れません…
次回から書き込みする時はきちんと環境も書きますのでご容赦くださいませ。
あと、個人名も出さないようにしますね。m(_ _)m
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-06-15 14:42
えーと、なんだか雑談風味になってしまって申し訳ないですが。

honey bee さんがおっしゃっているのは

引用:

GridView.Rows.Count とかで取れませんか?>行数


のことだと思います。
これはページングしている場合は該当ページの行数しか取れないということで、このことを
指していたわけではありません。書いたときは知らなかったのと、IIS が使える環境が手
元にないのでちょっとあてずっぽうだったです。

で、それともう一方の先ほど私が引用した部分はまた別で、会社の方の方式と同じ(まっ
たく同じではないけど、考え方は同じだと思います)じゃないのかなー?と。
honey bee さんの書き込みからですと、GridView に与えているのが DataTable な
のか DataView なのか、それとも ObjectDataSource なのかがわからなかったため、
やはりあてずっぽうで書いています。
ただ、どのオブジェクトでもデータソースから行数を得ることは可能だと思ったのですが、う
まく伝わっていなかったみたいですね。

別に難癖を付けるとかではないので、あまり気にしないでください

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