- PR -

GridViewの自動DataBindのタイミングについて

投稿者投稿内容
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-06-25 09:12
どっとねっとふぁんさん、ご回答ありがとうございます。

>そういったことはまったく行っておらず、常に検索ボタンをクリックしている、
>ということでよいでしょうか?
はい。常に検索ボタンをクリックしています。

>検索条件のコントロールの内容が、4のSelectが発生するページだけ
>毎回設定されている
>(毎回変更されていると認識されている)ということはありませんか?
「毎回変更されている」というのはどの様に調べれば分かりますでしょうか?
コントロールをSelectParametersにデザイン時に設定していますが、
どのタイミングで設定されているのでしょうか?

またまた質問になってしまいましたが、宜しくお願い致します。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-06-25 11:00
> コントロールをSelectParametersにデザイン時に設定していますが、
> どのタイミングで設定されているのでしょうか?

このコントロールの値は検索ボタンクリック時に変わることはありませんか?
また、ポストバックのタイミングでコントロールを作り直したりしていて、新に値が設定されたかのようになっていることはありませんか?

そのあたりが気になるということです。
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-06-25 11:53
どっとねっとふぁんさん、ご回答ありがとうございます。

>ポストバックのタイミングでコントロールを作り直したりしていて、
>新に値が設定されたかのようになっていることはありませんか?
原因が分かりました!
PageLoad時、ある条件の時、GridViewの列を非表示にしていました。
試しにこれをコメントアウトしたら、4のイベントは起きませんでした。
しかし、これをどこのイベントに入れるべきか迷っています。
GridView.Columns(列番号).Visible = False
としているのですが、
GridViewのLoadイベントでも変わりませんでした。
また、DataBoundイベントで行うと、今度はタイミングが変わって
最初の検索イベントで二回流れてしまいました。

どのイベントで行うべきかご教授願います。

宜しくお願い致します。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-06-25 12:39
うまくいくかどうかわかりませんが、GridViewのPreRenderあたりでやってみるとどうなります?
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-06-25 12:50
GridViewのPreRenderで行った所、やはり二回流れてしまいました。

自分でBindするべきなんでしょうか?

宜しくお願い致します。
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-06-27 11:22
解決いたしました。

GridViewのInitイベントで記述する事で一回のSelectになりました。
PageLoad前にObjectDataSourceのイベントが発生(ProcessPostDataイベントで実行)
していましたので、その前に行う事で解決しました。

どっとねっとふぁんさん、色々お付き合い頂きありがとうございました。

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