2016-05-31 8 views
0

암호의 값을 Label으로 캡처하려고합니다.페이지로드 중 레이블이 변경됨

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; 
    } 
} 

내 페이지로드

: 4 자리 문자1의 소문자 편지

이 자리하고 NUM

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

발전기 모두를 추가하는 나의 방법이다

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/text-value-text-value-text-value-text-changed-server-side) –

+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 explanation 때 참 또는 거짓 IsPostBack =. 코드 개발 및 디버깅을위한 단일 컴퓨터의 경우 "클라이언트"는 브라우저이고 "서버"는 컴퓨터입니다. (링크 된 기사에서 질문은 "IsPostBack은 무엇입니까?"가 아닙니다. 올바른 질문은 "포스트 백이란 무엇입니까?"더 나은 복잡한 다이어그램이 있는데 찾을 수는 없지만 찾을 수는 있습니다.)

포스트 백은 처리를 위해 ASP.NET 페이지를 서버에 전송하는 프로세스에 지정된 이름입니다. PostBack은 (예를 들어) 일부 소스에 대해 페이지의 특정 자격 증명 (예 : 데이터베이스의 사용자 이름 및 암호 확인)을 검사해야하는 경우 완료됩니다. 이것은 클라이언트가 독자적으로 성취 할 수없는 것입니다. 따라서 이러한 세부 정보는 사용자 상호 작용을 통해 서버에 '다시 게시'되어야합니다.

포스트 백은 클라이언트 (브라우저)에서 서버로 왕복 한 다음 클라이언트로 왕복하는 것입니다. 이렇게하면 페이지가 서버의 ASP 엔진과 업데이트 할 동적 컨텐츠를 통과 할 수 있습니다.

포스트 백 질문에 대한보다 자세한 답변은 see here입니다.

여기에는 ASP.NET (웹) 페이지 수명주기 개요의 description가 있으며 여기에는 PostBack이 포함됩니다.

+0

이 답변은 기술적으로 정확하지만 제안 된 암호. – CoolBots

+0

뛰어난 설명! +1! 고맙습니다! – CoolBots

0

변수를 Session 변수에 저장할 수 있습니다. 속성을 통해 초기 페이지로드 및 후속 페이지 다시로드 (세션 당)에서 Page_Load에서 실행되는 내용을 제어 할 수도 있습니다.

1

if (! Page.IsPostBack) {// 여기에 논리를 입력하십시오.}

그리고 Session [ "sessionKey"] = value;에 값을 저장할 수 있습니다.

하고 세션을 확인하여 검색 할 수가 null가 아닌

경우 (세션 [ "sessionKey"] = 널!);

lblPassword.Text = Session [ "sessionKey"];