2016-05-31 98 views
0

我試圖將我的密碼的值捕獲到Label4位字母1小寫字母頁面加載期間標籤更改

這是我的方法添加兩個數字和num

public void SaveTransactionID() 
{ 
    string password = lblStart.Text + lblStop.Text; 
    lblPassword.Text = password; 
} 

發電機:

private void GenRandomNumber() 
{ 
    Random generator = new Random(); 
    String r = generator.Next(0, 10000).ToString("D4"); 
    lblStart.Text = r; 
} 

//Generate Random Letter 
static class RandomLetter 
{ 
    static Random _random = new Random(); 
    public static char GetLetter() 
    { 
     // This method returns a random lowercase letter. 
     // ... Between 'a' and 'z' inclusize. 
     int num = _random.Next(0, 26); // Zero to 25 
     char let = (char)('a' + num); 
     return let; 
    } 
} 

我的頁面加載

protected void Page_Load(object sender, EventArgs e) 
{ 
    char lowerCase; 
    lowerCase = Convert.ToChar(RandomLetter.GetLetter()); 
    lblStop.Text = lowerCase.ToString(); 
    GenRandomNumber(); 
} 

我知道我的密碼會改變每一頁的加載。這就是爲什麼我試圖將其保存在我的Label上,以便在頁面再次加載時可以捕獲密碼。但事情是我的SaveTransactonId()也在頁面加載期間改變。即使頁面加載,我如何存儲密碼的值?

+3

寫你的代碼裏面,如果!(IsPostBack){}它會解決你的問題:) –

+0

可能重複[從文本框獲取文本/價值/文本後更改服務器端](http://stackoverflow.com/questions/34544500 /從文本框中獲取文本值 - 文本更改服務器端) –

+0

@ManishGoswami它確實工作 –

回答

2

下面是一個例子:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      char lowerCase; 
      lowerCase = Convert.ToChar(RandomLetter.GetLetter()); 
      lblStop.Text = lowerCase.ToString(); 

      GenRandomNumber(); 
     } 
    } 

這將解決您的問題。

編輯:

這裏是發生什麼情況的short explanationIsPostBack = true或false。對於用於開發和調試代碼的單臺計算機,「客戶端」是您的瀏覽器,「服務器」是您的計算機。 (在鏈接的文章中,問題不是「什麼是IsPostBack?」正確的問題是「什麼是PostBack?」有一個更好,更復雜的圖表;我找不到它,但這會做。)

PostBack是將ASP.NET頁面提交給服務器進行處理的過程的名稱。如果(例如)要根據某些源(如驗證數據庫的用戶名和密碼)檢查頁面的某些憑證,則會執行PostBack。這是客戶自己無法完成的事情,因此這些細節必須通過用戶交互「回傳」給服務器。

回發是從客戶端(瀏覽器)到服務器然後回到客戶端的往返行程。這使您的頁面可以通過服務器上的asp引擎以及任何要更新的動態內容。

對於回發問題的更詳細的答案,see here

這是ASP.NET(web-)頁面生命週期概述的description,其中一些涉及PostBack。

+0

雖然這個答案在技術上是正確的,但是通過解釋建議碼。 – CoolBots

+0

優秀的解釋! +1!謝謝! – CoolBots

0

您可以將該值存儲在Session變量中;您還可以通過Page.IsPostBack屬性控制在初始頁面加載時對Page_Load運行的內容與隨後的頁面重新加載(每個會話)。

1

if(!Page.IsPostBack){//把你的邏輯放在這裏。}

你可以保存你的值在Session [「sessionKey」] = value;

,您可以通過檢查會話檢索它不是空

如果(會話[ 「sessionKey」]!= NULL);

lblPassword.Text = Session [「sessionKey」];