2016-05-31 4 views
0

Я пытаюсь зафиксировать значение моего пароля до Label. 4 цифры буквы и 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

напишите свой код внутри if! (IsPostBack) {} Это решит вашу проблему :) –

+0

Возможный дубликат [Получить текст/значение из текстового поля после изменения значения/текста на стороне сервера] (http://stackoverflow.com/questions/34544500/get-text-value-from-textbox-after-value-text-changed-server-side) –

+0

@ManishGoswami It did Work –

ответ

2

Вот пример:

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

      GenRandomNumber(); 
     } 
    } 

Это позволит решить вашу проблему.

EDIT:

Вот short explanation того, что происходит, когда условия IsPostBack = истинным или ложным. Для одного компьютера для разработки и отладки кода «Клиент» является вашим браузером, а «Сервер» - вашим компьютером. (В связанной статье вопрос не «Что такое IsPostBack?». Правильный вопрос: «Что такое PostBack?». Лучшая, более сложная диаграмма, я не могу ее найти, но это будет делать.)

PostBack - это имя, предоставленное процессу отправки страницы ASP.NET на сервер для обработки. PostBack выполняется, если (например) определенные учетные данные страницы должны быть проверены в отношении некоторых источников (таких как верификация имени пользователя и пароля для базы данных). Это то, чего клиент не может выполнить самостоятельно, и поэтому эти детали должны быть «отправлены назад» на сервер через взаимодействие с пользователем.

Отправка обратно в оба конца от клиента (браузера) к серверу, а затем обратно к клиенту. Это позволяет вашей странице проходить через движок asp на сервере и обновлять любой динамический контент.

Для получения более подробного ответа на вопрос PostBack, see here.

Это description обзора жизненного цикла страницы ASP.NET (web-), некоторые из которых связаны с PostBack.

+0

Хотя этот ответ технически корректен, это было бы значительно улучшено объяснением предложенного код. – CoolBots

+0

Отличное объяснение! +1! Спасибо! – CoolBots

0

Вы можете сохранить значение в переменной Session; вы также можете контролировать, что работает в Page_Load при начальной загрузке страницы и последующих перезагрузках страницы (за сеанс) через Page.IsPostBack.

1

напишите свой код внутри if (! Page.IsPostBack) {// Поместите свою логику здесь.}

и вы можете сохранить свое значение в сеансе ["sessionKey"] = значение;

и вы можете получить его путем проверки сеанса не является нулевым

если (Session [ "sessionKey"]! = NULL);

lblPassword.Text = Session ["sessionKey"];

 Смежные вопросы

  • Нет связанных вопросов^_^