- PR -

GridViewのEnableSortingAndPagingCallbacksプロパティについて

1
投稿者投稿内容
岩鉄
会議室デビュー日: 2006/12/25
投稿数: 3
投稿日時: 2006-12-25 23:24
GridViewについてです。

EnableSortingAndPagingCallbacksプロパティをTrueに設定して、
クライアントコールバックを利用して
Pagerで表示データの切り替えを行っています。

この表示データの切り替えなのですが、
○セルの結合
○複数ヘッダ行
など、グリッドの外見を制御していても、
Pagerでの表示データ切り替え時に
解除されてしまいます。

いろいろ試行錯誤してみたのですが、
まったくダメでした。

良い解決策をご存知の方がいらっしゃいましたら
ご教示お願いいたします。

ちなみに、こんな感じの処理をしています。
〜〜〜〜〜〜〜〜〜〜〜〜〜
 gridView.AutoGenerateColumns = false;
 // 列を追加
 BoundField bf = new BoundField();
 bf.HeaderText = "No";
 bf.DataField = "No";
 gridView.Columns.Add(bf);
 // データのセット
 DataTable dt = GetData(); // ここでバインドするデータを取得
 gridView.DataSource = new DataView(dt);
 gridView.DataBind();
 // ヘッダ行を追加する
 TableCell tc = new TableCell();
 tc.Text = "あ";
 GridViewRow gvr = new GridViewRow(
  -1, -1, DataControlRowType.Header,
  DataControlRowState.Normal);
 gvr.Cells.Add(tc);
 gridView.HeaderRow.Controls[0].Controls.AddAt(0, gvr);
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-12-26 05:19
引用:

EnableSortingAndPagingCallbacksプロパティをTrueに設定して、
クライアントコールバックを利用して
Pagerで表示データの切り替えを行っています。


EnableSortingAndPagingCallbacksをFalseに設定すると正常に動作する
ということでしょうか?

もし、そうならEnableSortingAndPagingCallbacksの代わりに
AjaxのUpdatePanelを使用してみてください。

EnableSortingAndPagingCallbacksはテンプレート列が使用できないなど
制約が多いので個人的にはUpdatePanelを使用しています。

----------------------------------------------
>この表示データの切り替えなのですが、
>○セルの結合
>○複数ヘッダ行
>など、グリッドの外見を制御していても、
>Pagerでの表示データ切り替え時に
ポストバック時に初期化されているのでは?
IsPostBack=True時の処理を見直して見てはどうでしょうか。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
岩鉄
会議室デビュー日: 2006/12/25
投稿数: 3
投稿日時: 2006-12-26 08:14
Access様

> EnableSortingAndPagingCallbacksをFalseに設定すると正常に動作する
> ということでしょうか?

はい。そうです。

> もし、そうならEnableSortingAndPagingCallbacksの代わりに
> AjaxのUpdatePanelを使用してみてください。

なるほど。
そちらは、勉強不足だったので手を出していなかったのですが、
良い機会なので勉強してみようと思います。

確かに、テンプレート列が使えないのは痛いですよね。

ありがとうございました。
岩鉄
会議室デビュー日: 2006/12/25
投稿数: 3
投稿日時: 2006-12-26 08:21
前述の続きです。

> ポストバック時に初期化されているのでは?
> IsPostBack=True時の処理を見直して見てはどうでしょうか

今回は、DataViewをBindしているので
毎回GridViewのDataSourceに割り当てをしています。

この際に初期化されるのでは?
と思いまして、
>○セルの結合
>○複数ヘッダ行
このあたりの処理を再度行うようにしていたのですが、
ダメでした。
どうやらPagerの切り替え時には、
DataBindされた状態に戻っているようです。
なんとなく納得できるような気はしますが、、
1

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