QA@IT

GridViewのPagerTemplateの位置固定方法

4152 PV

開発環境[ASP.NET VB2010 ASP.NET .NETFramework4.0]

お世話になります。
WebフォームにGridViewコントロールの「PagerTemplate」にボタンコントロールを貼り付けています。
GridViewは、ページングを有効にしているのですが、ページ移動した際、表示データの件数 < PageSizeの場合、PagerTemplateに貼り付けたボタンの垂直位置が上に表示されます。これを、表示件数に関係なく、ボタンの位置を固定にする方法は無いでしょうか?
できれば、表示データに空レコードを追加し、表示データの件数 < PageSizeにならないようにする方法はとりたくありません。
よろしくお願いします。

  • やりたいことがよく分かりません。データ行の下にページャーが表示されていて、その位置が例えば最後のページでデータが一行しかない場合でも PageSize 分間を空けて表示するということですか? 絵を書いて説明してもらわないと分からないかもしれませんね。 -
  • サンプルを書いてみました。解答欄の【2015/7/7 追記】を見てください。 -

回答

表示データに空レコードを追加し、表示データの件数 < PageSizeにならないようにする方法はとりたくありません。

上記の「表示データ」というのは、例えば SQL Server のテーブルにあるレコードのことで、それから取得したデータは細工して良いと理解してレスします。

データを何からどのように取得して GridView にバインドしているか書いてないので分かりませんが、もし取得したデータを DataTable に加工してそれを GridView にバインドしているなら、その DataTable に空行を追加して、DataTable の行数が [ページ数] x [PageSize] に合うよう調整するという案はいかがですか。

やり方が分からない、もしくは、質問者さんが使っているデータソースコントロールなどの制限の問題で上記の方法が使えないということであれば、どのようなコントロールを使ってそれらをどのように構成しているかの具体的な情報を書いてください。

また、ご自分の環境に関する情報(最初の質問に書いてあった以外の OS、IIS、DB サーバーとそのバージョン、ブラウザは何かなど)も書いてください。

【2015/7/7 追記】

GridView と SqlDataSource を使用した場合のサンプルを書いてみました。詳しくは以下のページを見てください。参考になれば幸いです。

GridView の最終ページに空行追加
http://surferonwww.info/BlogEngine/post/2015/07/07/add-empty-rows-in-last-page-of-paging-enabled-gridview.aspx

編集 履歴 (2)

サンプルありがとうございます。
明日、早速使わせていただきます!!

編集 履歴 (0)

返事が遅くなって申し訳ありません。

環境は、以下の通りとなります。
データベース:Oracle9i IIS:Ver4 ブラウザ:IE6

SqlDataSourceを使用して、GridViewにバインドしています。
参考サイト:http://www.atmarkit.co.jp/fdotnet/dotnettips/780aspgridviewshow1/aspgridviewshow1.html

DataTableに空行を追加せず、GridViewのプロパティや、CSS等を使って実現したかったのですが。。。

>DataTable に空行を追加して、DataTable の行数が [ページ数] x [PageSize] に合うよう調整するという案はいかがですか。
ありがとうございます。この案で、トライしてみます。

編集 履歴 (0)
  • 「IIS:Ver4 ブラウザ:IE6」とのことですが、それは間違いないですか? Oracle はよく分かりませんが、それは古すぎて間違っているような気がしますが。
    -
  • 「GridViewのプロパティや、CSS等を使って実現したかったのですが」というのは無理です。 -
  • 「この案で、トライしてみます」というのは、SqlDataSource を使っている場合そう簡単にはいかないと思います。やってみて問題があるようでしたらまた質問してください。 -
  • ブラウザ:IE6は、本当です。ブラウザ表示は、WindowsCE搭載のPDAなのです。
    なので、いろいろ制約が。。。
    -

説明不足でした。やりたいことは、画像の通りです。
____.png

編集 履歴 (2)
ウォッチ

この質問への回答やコメントをメールでお知らせします。