1

ハイパーリンクをクリックして、新しいページをロードする必要がある場合でも、テキストボックスのテキストを保持するにはどうすればよいか疑問に思っています。

常に空の文字列です。

誰かが私を助けることができますか?

            lkForgotten.NavigateUrl = string.Format("Logon.aspx?forgotten={0}", "");
            lkSend.NavigateUrl = string.Format("Logon.aspx?forgotten={0}&userEmail={1}", "submited", txtForgotten.Text);

            try
            {
                if (Request.QueryString["forgotten"].ToString() == "")
                {
                    txtForgotten.Visible = true;
                    lkSend.Visible = true;
                }

                if (Request.QueryString["forgotten"].ToString() == "submited")
                {
                    userEmail = txtForgotten.Text;
                    SendForgottenPassword(userEmail);
                }
            }
            catch { }
4

2 に答える 2

3

その人に固有のデータを保持する必要がある場合は、セッションを使用できます。それはまさにあなたが必要とするものです。

いつでも設定して、必要な値を取得できます。

http://msdn.microsoft.com/en-us/library/ms178581.aspx

編集: コメントで提起されたいくつかの反対意見を満たすために、セッション自体が十分でない場合でも、別のアプローチを使用できます。javascriptを使用してテキストボックスを監視し、値が変更された場合は、Cookieを追加します(または、必要に応じて既存のCookieに値を追加します)。このタイプの機能にクエリ文字列を使用するよりもはるかに優れたアプローチ...少なくとも私の意見では。

于 2012-04-23T11:54:20.473 に答える
0

編集

でリダイレクトを行います

Javascriptコード

function redirect()
{
   var val = document.getElementById('<%= txtForgotten.ClientID %>').value;
   location.href='Logon.aspx?forgotten=submitted&userEmail=' + val ;
}

<input type="button" VALUE="Visit Microsoft" OnClick="redirect();">

上記のコードの問題は、テキストボックスの値が空のときにページの読み込み時にパスワードを忘れるURLを作成している場合と、パスワードを忘れるリンクをクリックしてリダイレクトを行う場合、コードに入力した値だけでなく、空の値を取得することです...それを機能させるには、上記のようにjavascriptを使用してリダイレクトを実行するか、リダイレクトを実行するクリックイベントを使用します。

組織

次の行はこのように変更されます

 if (Request.QueryString["forgotten"].ToString() == "submited")                 {                     
   userEmail = txtForgotten.Text = Request.QueryString["userEmail"].ToString() ;                         
    SendForgottenPassword(userEmail);                
 }

したがって、ボタンをクリックすると、クエリ文字列からuserEmailの値が取得され、テキストボックスに値が復元されます...これで確実にタスクが実行されます

また

Cookieのような他のクライアント側のメカニズムを利用して値を保存し、ページに戻すことができます...

サーバーサイドオプションはセッション変数であり、値を保存して取得したい場合にも役立ちます。

于 2012-04-23T11:53:57.820 に答える