- - PR -
【質問】ASP.NETのDataGridのページング
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-07-03 14:00
検索条件を入力し、オリジナル作成のWebサービスに検索条件を渡し、返ってきたDataSetをDataGridにバインドして表示するプログラムを作成しました。
DataGridのページングの処理で困っています。 【ソース】 DataSet dsspRireki = new DataSet(); private void Page_Load(object sender, System.EventArgs e) { clalis.clalis wsClalis = new clalis.clalis(); // オリジナルWebサービス if (Page.IsPostBack) { Page.Validate(); if (Page.IsValid) { dsspRireki = wsClalis.GetspRireki(txtSpID.Text); dgrdSpRireki.DataSource = dsspRireki; dgrdSpRireki.DataMember = "spRireki"; //dgrdSpRireki.CurrentPageIndex = 0; dgrdSpRireki.DataBind(); } } } private void dgrdSpRireki_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { dgrdSpRireki.CurrentPageIndex = e.NewPageIndex; dgrdSpRireki.DataBind(); } 【前提条件】 ・検索条件A:DataGridに20ページ分のデータがある ・検索条件B:DataGridに5ページ分のデータがある ・DataGridのページングコントロールのスタイルは「ページ番号」 ・ページ数は10 【現象】 1.上記ソースで下記を実行 1-1.Aの検索を行う 1-2.10ページに遷移 1-3.Bの検索を行う 1-4.エラー 「CurrentPageIndex 値が無効です。 値は 0 以上で PageCount より 小さくなければなりません。」 2.1-4のエラーを回避する為に、Page_LoadイベントでCurrentPageIndexを初期化する 「//dgrdSpRireki.CurrentPageIndex = 0;」のコメントを外し下記を実行 2-1.Aの検索を行う 2-2.10の隣の「...」をクリック 2-3.11ページ目が表示される … 正常 2-4.「...」「11」の次の「12」をクリック(左から3番目のリンク) 2-5.3ページ目が表示される … 意図する結果ではない 現象1と2を解決する方法がわかりません。 うまく説明が出来ていないかも知れませんが、良い方法をご教授いただければ幸いです。 |
|
投稿日時: 2002-07-03 17:00
ちばです。
ページ切り替え時にまた新たにページインデックスを設定する。 public void Grid_Change(object sender, DataGridPageChangedEventArgs e) { // ページインデックスを設定 Grid.CurrentPageIndex = e.NewPageIndex; } |
1