- PR -

ポストバックするとSession変数が初期化されてしまう!!

投稿者投稿内容
未記入
会議室デビュー日: 2004/11/24
投稿数: 12
投稿日時: 2004-12-21 19:52
OS:WindowsXP 開発:ASP.NET

Private Shared dvList As System.Data.DataView


If Not (IsPostBack) Then
  'DataSourceをSession変数に格納
Session("DataSource") = dvList --@

Else
dvList = Session("DataSource") --A
 End If

 @のときSession変数に格納されているデータが、
 ポストバックされたとき、Aのとき初期化されてしまい
Nothingが返ってきてしまいます。

 初歩的なミスかもしれませんが、理由が分からないので
 教えてください!!お願いします。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-12-21 20:27
> Session("DataSource") = dvList
この時点で右辺がNothingになっているとか。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2004-12-21 20:33
Cookieless の設定にしていないのにクライアントがクッキー食べないとか。
未記入
会議室デビュー日: 2004/11/24
投稿数: 12
投稿日時: 2004-12-22 09:21
todoさん・にしざきさん返答ありがとうございます。

todoさん
  >Session("DataSource") = dvList
  >この時点で右辺がNothingになっているとか

↑この時点で、dvList(右辺)はあ、Nothingになっていません。
   それに、Session変数にもちゃんと格納しているのに、
   ポストバックするとNothingが返ってきてしまいます。

にしざきさん
  >Cookieless の設定にしていないのにクライアントがクッキー食べないとか。

そうなんです!!Cookielessは。Falseで設定しています!!
  それに、Cookie変数は、ポストバックしても値を保持しているのです。

  htpCooki = New HttpCookie("Test", "aaa")
Response.Cookies.Add(htpCooki)


If Not (IsPostBack) Then
  'DataSourceをSession変数に格納
Session("DataSource") = dvList --@

Else
dvList = Session("DataSource") --A
strTest = Request.Cookies("Test").Value()--B
End If

 ASession変数からの取得の場合 dvList=Nothing でNothingになってしまう。
 BCookiesからだと、取得できる strTest="aaa"  Cookieに登録した値が入ってく   る。

 というような状況です。
 Session変数というのは、ページ遷移間の受け渡しに使用するもので、
 同一のページの遷移は、ポストバックしたとき初期化されてしまうのでしょうか??

 
 原因が、つかめないので教えてください。!!!



 

えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-12-22 09:40
引用:

未記入さんの書き込み (2004-12-21 19:52) より:

Private Shared dvList As System.Data.DataView


Sharedと定義しているからには、何か意味があってのことでしょうか?
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-12-22 11:14
> dvList = Session("DataSource")

DataTableの実体がないので、DataViewが復元できないのかもれません。
DataViewではなくDataTableをSessionに保存してみては?
yyy
常連さん
会議室デビュー日: 2004/01/27
投稿数: 33
投稿日時: 2004-12-22 11:44
DataViewをSession変数に格納して利用したことがあるので、その辺は大丈夫だと思います。IISのオプション設定の「セッションの状態を有効にする」のチェックが外れていたりしていませんか?
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-12-22 11:55
Label1.Text = Session.SessionID

お試し下さい。
セッション切れであれば、値が変わります。

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