私は長い間プログラミングをしていないので、私の理論が正しくない可能性があるため、最初に私の仮定を書きます。
仮定:
- 参照型の背後にある単純なロジックに従って、A というクラス 'Class1' のインスタンスがあり、Class1 型の新しい変数を作成すると、Class1 newInstance = A のように、クラス A の属性のすべての変更が 'newInstance' 属性に反映されます。 class は参照型です (構造体などの値型ではありません)。
- ASP では、すべてのページが Page 型のクラスの新しいインスタンスです。それ以外の場合、すべてのクライアントが同じページを見て同じページを操作することになり、目標はそれらを分離することです。ページのすべてのコンポーネント (textBox や gridView など) は、特定のインスタンスに属します。
これらが間違っている場合は修正してください。
問題:
クライアント側 (javascript) からデータの一部を取得するためにページ メソッドを使用する必要があるため、静的メソッドを使用するしかありません。私が達成したいのは、ページのインスタンス、または少なくとも何らかの参照をセッション変数に保存できるようにすることです。これにより、後でそれに戻って、目的のページインスタンスの特定のコントロールの値を取得または設定できます. つまり、現在のインスタンス (this) をセッション変数に格納します。これは PageLoad で一度だけ割り当てられます (!isPostback)。参照型のロジックに従って、ページのインスタンスのすべての変更がセッション変数に反映されるはずですが、どういうわけかそうではありません。一部のコントロールの値が変更された場合、postBack のページのインスタンスに反映されていることが簡単にわかります (当然のことですが)。ただし、セッション変数の内容は変更されていません。あたかも構造体であるかのように振る舞います。インスタンスを静的クラス変数に格納しようとしているときにも同じことが起こります (ただし、マルチユーザー Web アプリであるため、機能したとしても解決策にはなりません)。
誰かが私に何が起こっているのか説明し、間違っている場合は私の考えを修正してもらえますか?