- - PR -
DataGridのPagerについて
1
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-26 17:12
いつもお世話になっております。
掲題の件について質問させてください。 現在、 -------------------------------------------------- DataGrid_A.AllowPaging = true; DataGrid_A.PageSize = 5; DataGrid_A.PagerStyle.Mode = PagerMode.NumericPages; DataGrid_A.PagerStyle.PageButtonCount = 10; DataGrid_A.PagerStyle.PrevPageText = "<"; DataGrid_A.PagerStyle.NextPageText = ">"; DataGrid_A.PagerStyle.Position = PagerPosition.Top; -------------------------------------------------- 以上のように、DataGridのPagerStyleを設定しているのですが、 10ページ目以上に渡る際、「...」と、最後に表示されます。 これをクリックすると、11ページ目を開き、 ページャーのリンクボタンも11〜20に変わるのですが、 これらのリンクボタンを押すと、1〜10ページ目に戻ってしまいます。 リンクボタンの上にマウスを置いて、遷移先ページを見ると、 どうもページャーが1〜10の場合と同じように表示されているようなのですが、 このような現象を回避された経験のある方、また対処法をご存知な方がおりましたら、 ご教授願えないでしょうか? 宜しく御願いします。 | ||||||||||||
|
投稿日時: 2005-09-26 18:04
お世話になります。
DataGridのPageIndexChangedイベントを拾って、 e.NewPageIndexの値をみて、 バインドするDataSourceを適宜変更し、再バインドした 記憶があります… もっとよい方法があるのかも知れませんが…。 | ||||||||||||
|
投稿日時: 2005-09-26 18:29
ViewStateが無効になっているとか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10281&forum=7 DataGridのポストバック時の問題の究極スレッド [ メッセージ編集済み 編集者: todo 編集日時 2005-09-26 18:33 ] | ||||||||||||
|
投稿日時: 2005-09-26 18:47
お世話になります。
なるほど…CurrentPageIndexですか。 勉強になりますm(*_ _)m | ||||||||||||
|
投稿日時: 2005-09-27 10:37
なおこさん、todoさん、お返事ありがとうございます。
EnableViewStateはtrueになっていました。 ただ、Page_Load()においてDataGridの再読み込みを行っているので、 今回はEnableViewStateはfalseにしたほうが良かったのかもしれません。 流れとしては、Page_Load()でDataGrid再読込みをし、PageIndexChangedを流れるのですが。 現在表示されているページを保持せず、e.NewPageIndexをそのままCurrentPageIndexに入れたのが間違いだったようです。 まだ解決には至っていませんが、現在表示されているページを保持する方向で作っていきたいと思います。 アドバイスありがとうございました。 また何かの折には宜しく御願いします。 | ||||||||||||
|
投稿日時: 2005-09-27 13:57
e.NewPageIndexをそのままCurrentPageIndexに入れるのは、全然間違いじゃないと思うんですが、なぜ間違いだと思ったのでしょう?
やりたいのは「ページ移動」なんですから、重要なのは「現在表示されているページ」じゃなくて、「移動先のページ」ですよね?todoさんのリンク先にこう書いてます。
この通りにして、IsPostBackの時はPageIndexChangedでリバインド処理を行うようにすれば解決するんでは? | ||||||||||||
|
投稿日時: 2005-09-27 18:05
ぼのぼのさん、レスありがとうございます。
書いた時はなぜかそのように思い込んでしまいました・・・ 検索条件を変更して、再表示させる際、CurrentPageIndexを一度0に設定しないと、 途中で落ちていたので、CurrentPageIndexを0にしていたのですが、 CurrentPageIndexが0のままPageIndexChangedに流れていく点が問題でした。 PageIndexChangedに流れる前(Page_Load()の最後)で、 CurrentPageIndexの値を元に戻すことで無事解決いたしました。 (ページ最大数が保持したCurrentPageIndexよりも大きい場合のみ) ご協力くださった皆様、ありがとうございました。 | ||||||||||||
1
