ユーザー情報(ADのチェック、電子メールの識別名、説明フィールドのロードなど)に基づいて変数を設定するクラスがあります。 。私は_Defaultページで 'currentinfo'変数を宣言していますので、セッション中にオブジェクトを持つことができます。ASP.NET:_Defaultで宣言され、Page_Load()でインスタンス化されたオブジェクトが2番目のロード時にNULLです
Page_Loadイベントでクラスをインスタンス化しますが、If(!IsPostBack)の内部でクラスをインスタンス化するので、コンストラクターメソッドは最初だけ実行されます。それは正常に動作します(コンストラクタはオブジェクトを生成し、すべてのデータはブレークポイント付きのデバッグモードで確認されたものです)。しかし、If句を離れると、オブジェクトは再びnullになります。
ページが読み込まれたときにオブジェクトを準備しておき、ボタンのクリックなどの他のイベントで使用できるようにしたいとしました。だから、私の質問は次のとおりです:
1 - 私はコンストラクタが終了するのに時間がかかるので、私はボタンをクリックするたびにページを再度ロードし、オブジェクトがインスタンス化されていると、if(!IsPostBack) if節の中ではないので、新しいイベントが発生するたびにASP.NETがページを再読み込みするのを止めるにはどうすればよいですか?
2 - 1ができない場合は、句を残した後でオブジェクトを有効に保つにはどうすればよいですか? 編集:2 - 2回目のページの読み込み後に変数の状態を保持するにはどうすればよいですか?
public partial class ListUsers: System.Web.UI.Page
{
CurrentUserStructure currentuserinfo;
List<CurrentUserStructure.ListUserClass> lsUsers;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
currentuserinfo = new CurrentUserStructure();
lsUsers = currentuserinfo.GetUserList();
}
}