2012-04-23 22 views
1

我想知道如何保留我的文本框的文本,即使我必須進行新的頁面加載,單擊超鏈接。通過PageLoad()保留文本框的文本;

它總是一個空字符串。

有人可以幫助我嗎?

  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 { } 
+0

HTML和Web應用程序是無狀態的,除非您使用Cookie或Session,否則無法保存頁面上的數據。 – gdoron 2012-04-23 11:50:25

+0

是javascript解決方案嗎? – 2012-04-23 12:24:34

回答

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();"> 

問題witht他上面的代碼是當你創建忘記在頁面加載密碼的網址那時文本框的值是空的,什麼時候通過點擊忘記密碼做重定向鏈接它只能得到空值您在代碼中鍵入的內容...所以,使其工作做使用JavaScript如上或使用該爲你做的重定向點擊事件的重定向....

組織

以下行改變這樣的

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

所以,當你點擊按鈕,它從查詢字符串獲取USEREMAIL的價值和恢復價值,你的文本框...這一定會做你的任務

,您可以利用其他客戶端mecanisam有Cookie存儲的價值,比retrive回來頁...

服務器端的選項,如果你想存儲的價值和檢索會話變量也有幫助返回.....

+0

事情是txt永遠是空的... – Kiwimoisi 2012-04-23 11:59:15

+0

@Emged - 當你做回發做它從JavaScript而不是tahn形式的服務器端...我正在編輯我的代碼asap – 2012-04-23 12:01:19

+0

我應該如何使用此javascript? – Kiwimoisi 2012-04-23 12:08:08

3

如果您需要保留一些特定於該人的數據,則可以使用會話。這正是你需要的東西。

您可以隨時設置它並獲取所需的值。

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

編輯: 爲了滿足在意見中提出了一些異議,如果會話本身是不夠的,你仍然可以使用不同的方法。使用javascript監控文本框,如果它們的值發生變化,請添加一個cookie(或者向現有cookie添加一個值,取決於需求)。仍然比使用querystring這種類型的功能更好的方法......至少在我看來。

+0

-1:井會話是不會幫助,直到你創建serverside點擊事件,因爲當按下鏈接按鈕時,它獲得重定向到頁面,而不是採取文本框的價值,所以這不會工作在這裏...閱讀我的答案爲什麼它不工作... – 2012-04-23 12:10:49

+1

@PranayRana,好吧,這取決於情況。無論如何,對於這種情況使用查詢字符串在我看來是相當糟糕的。爲什麼?因爲如果你有20個文本框(這個數量還是相當低的),並且你想保留所有的值,你最終會得到一個非常難看的URL。不是在談論這種情況,你有多個錨鏈接,並希望整個站點具有相同的功能。非常糟糕的事情要做。你必須管理每個鏈接的URL,這真的很糟糕。感謝負... – walther 2012-04-23 12:36:12