- PR -

DataGridへの結果表示

投稿者投稿内容
tetsuya11
常連さん
会議室デビュー日: 2003/11/08
投稿数: 37
投稿日時: 2004-03-11 20:13

引用:
--------------------------------------------------------------------------------
ここのCurrentPageIndexを設定しているところですが、なんか、ひっかかる。このメソッドをコールしたメソッドを抜けた後に、DataGrid_PageIndexChangedメソッドが実行されたりしていませんか?
--------------------------------------------------------------------------------
DataGrid_PageIndexChangedにもブレークポイント張って確認しましたが
実行されませんでした。

(※DataGridのPageSizeは5です)
自動変数ウィンドウで確認したところ
"DataGrid.CurrentPageIndex = Session("PageNo")"では
"DataGrid2.CurrentPageIndex"は0
"ds.Tables(TableName0).DefaultView"のCountには
期待通りの検索件数が入っていて

"DataGrid2.DataBind()"では
"DataGrid2.CurrentPageIndex"は0
"DataGrid2.Items.Count"は5

"If DataGrid2.Items.Count = 0 Then"では
"DataGrid2.Items.Count"は0
となっていました。

他に確認すべき箇所があればご教授いただけますでしょうか。
よろしくお願いいたします。
masas
常連さん
会議室デビュー日: 2002/05/23
投稿数: 25
投稿日時: 2004-03-12 02:12
tetsuya11さんとちょっとした知り合い(でも実際にはあったこと無い)なので、ソースを丸ごと拝借してみてみました。
結論としては
1. Page_LoadでDataBindしているが、このときのDataSourceにはDataSet_receiptを使っている(aspxで定義している)
2. 担当者?のDropDownListの選択時にWHERE区を作っているが、このときはds(別のDataSetの変数)を使っていてBindしている
ということで、.aspxと.vbで定義がぐちゃぐちゃになっているのが原因でした。
他にソートやFilter(WHERE),ページング程度でセッションを多様している様子で、そのためにRedirectを使っているみたいです。実際にはViewStateで十分かと。
(ViewStateを無効にしているわけでもないし)
ということでたぶんこれで解決できると思います。
tetsuya11さんも.vbだけを記載しているため、他の人にはわからない障害かと思いました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-12 11:00
引用:

masasさんの書き込み (2004-03-12 02:12) より:
(略)


 引用されていないところの問題とは思っていましたが、まさか.aspxと.aspx.vbの両方でソースを書いている(プロパティの設定?)とまでは考えませんでした...

 masasさん、ご報告くださり、ありがとうございました。これで安心して寝られます(マジで夢の中でこねくり回していた)。


 そうそう、今、当方で「セッションタイムアウトまで達していないはずなのにセッションが切れる」という報告があり、調べたところ、セッションの保存をインプロセスにしていると、ASP.NETのワーカプロセスが再起動したときにセッション情報が失われます。そして、再起動の要件として、システム全体のメモリの60%(デフォルト)に当たるメモリ量を確保したときに、ワーカプロセスが再起動することがわかりました。セッション変数を多用すると、メモリ確保量が大きくなるので、ご注意。
出典:MSDNトピック「<processModel>要素」、「セッション状態」
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2004-03-12 11:34
引用:

Jittaさんの書き込み (2004-03-12 11:00) より:
 そうそう、今、当方で「セッションタイムアウトまで達していないはずなのにセッションが切れる」という報告があり、調べたところ、セッションの保存をインプロセスにしていると、ASP.NETのワーカプロセスが再起動したときにセッション情報が失われます。そして、再起動の要件として、システム全体のメモリの60%(デフォルト)に当たるメモリ量を確保したときに、ワーカプロセスが再起動することがわかりました。セッション変数を多用すると、メモリ確保量が大きくなるので、ご注意。
出典:MSDNトピック「<processModel>要素」、「セッション状態」



前のプロジェクトで同様の現象がありました。
しかも全国ン十個所にある支社が一斉にセッション切れ(笑)。
サーバは本社にある為、その日は支社からの電話が絶えなかったとか。

原因はその時調べて分かったのですが、お客さんにこっぴどく叱られました。
私じゃないですけど

#脱線してすみません。

_________________
まゆりん @ わんくま同盟
Blog る。
tetsuya11
常連さん
会議室デビュー日: 2003/11/08
投稿数: 37
投稿日時: 2004-03-12 11:35

Jittaさん、masasさん、ありがとうございました。

DataGridのDataSourceプロパティの設定を削除したら
ちゃんと表示され解決しました。

まだまだ勉強不足ですが、これに懲りずに、
また宜しくお願いいたします。

      m(_ _)m


PS. Jittaさん、今夜はイイ夢を観れることを祈っております。
       
masas
常連さん
会議室デビュー日: 2002/05/23
投稿数: 25
投稿日時: 2004-03-12 13:21
引用:

Jittaさんの書き込み (2004-03-12 11:00) より:
 masasさん、ご報告くださり、ありがとうございました。これで安心して寝られます(マジで夢の中でこねくり回していた)。


よかったです。
私もソースをもらって、「ん?変なところがないぞ!」ってちょっと悩んでしまいました。
おまけにVBって嫌いなので、見づらい見づらい。
結局30分ほどDEBUGしてみて解決しました。
ちなみに、VB.NETでVS.NETからDEBUGGERをスタートさせると、数十秒止まっていますが
これは仕様なんですか?。

引用:

 そうそう、今、当方で「セッションタイムアウトまで達していないはずなのにセッションが切れる」という報告があり、調べたところ、セッションの保存をインプロセスにしていると、ASP.NETのワーカプロセスが再起動したときにセッション情報が失われます。そして、再起動の要件として、システム全体のメモリの60%(デフォルト)に当たるメモリ量を確保したときに、ワーカプロセスが再起動することがわかりました。セッション変数を多用すると、メモリ確保量が大きくなるので、ご注意。
出典:MSDNトピック「<processModel>要素」、「セッション状態」


しらなかった。これは大変勉強になります。m(_)m
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-12 13:58
引用:

masasさんの書き込み (2004-03-12 13:21) より:

ちなみに、VB.NETでVS.NETからDEBUGGERをスタートさせると、数十秒止まっていますが
これは仕様なんですか?。


 これはWebアプリのとき、ですよね?スタートもだし、止めるときもかたまりますよね。

 おそらく、ワーカプロセスにアタッチして、IEを起動させるのに時間がかかっていると思われます。ワーカプロセスにアタッチするだけなら、数秒で済んでいるのに…?
masas
常連さん
会議室デビュー日: 2002/05/23
投稿数: 25
投稿日時: 2004-03-12 14:50
引用:

 これはWebアプリのとき、ですよね?スタートもだし、止めるときもかたまりますよね。

 おそらく、ワーカプロセスにアタッチして、IEを起動させるのに時間がかかっていると思われます。ワーカプロセスにアタッチするだけなら、数秒で済んでいるのに…?


言葉足りずですみません。Webアプリの場合です。
でもC#でWebアプリを作って、スタートさせても、直ぐIEが起動するんですよ。
同じCLRなのに???と思ったまででした。

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