2011-09-06 4 views
0

aspx-file로 구성된 웹 응용 프로그램이 있습니다.apsx.cs 파일의 텍스트 상자가 변경된 텍스트를 업데이트하지 않습니다.

페이지로드시 두 개의 텍스트 상자에 데이터 ("사용자 이름"및 "비밀번호")가 채워집니다. 이 작동합니다.

버튼을 클릭하면 텍스트 상자의 텍스트가 저장됩니다. 그러나 어떤 이유로 텍스트 상자의 텍스트가 수동으로 (키보드로 일부 문자를 입력하여) 변경 한 경우 업데이트되지 않습니다.

왜 그럴까요? 내 프로그램에 내 변경 사항을 어떻게 알릴 수 있습니까?

내 코드는 다음과 같습니다

protected void Page_Load(object sender, EventArgs e) 
    { 
     CredentialsManager cm = new CredentialsManager(); 
     TextBox_Benutzername.Text = cm.Username; 
     TextBox_Passwort.Text = cm.Password; 
    } 

    protected void Button_Speichern_Click(object sender, EventArgs e) 
    { 
     CredentialsManager cm = new CredentialsManager(); 
     cm.setCredentials(TextBox_Benutzername.Text, TextBox_Passwort.Text); 
    } 

편집 :

그것은이 개선 작동 : 자세한 내용은

protected void Page_Load(object sender, EventArgs e)  
{   
    if(!IsPostBack) 
    { 
     CredentialsManager cm = new CredentialsManager();   
     TextBox_Benutzername.Text = cm.Username;   
     TextBox_Passwort.Text = cm.Password;  
    } 
} 

, 아래의 답변을 참조하십시오. 모두에게 감사드립니다!

답변

2

다시 게시를 확인하십시오 -

private void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     CredentialsManager cm = new CredentialsManager(); 
     TextBox_Benutzername.Text = cm.Username; 
     TextBox_Passwort.Text = cm.Password; 
    } 
} 

귀하의 Page_Load 코드는 현재 모든 버튼 클릭 (또는 포스트 백) 후 실행하고 수동으로 추가 한 값을 덮어 쓰게됩니다 .

1

이 시도

protected void Page_Load(object sender, EventArgs e) 
    { 
    if(!IsPostBack){ 
     CredentialsManager cm = new CredentialsManager(); 
     TextBox_Benutzername.Text = cm.Username; 
     TextBox_Passwort.Text = cm.Password; 
    } 
} 
1

페이지로드가 많을 때마다 모든 페이지로드시 텍스트 상자에 값을 할당해야합니다.

변경하여 Page_Load 방법 :

protected void Page_Load(object sender, EventArgs e)  
{   
    if(!IsPostBack) 
    { 
     CredentialsManager cm = new CredentialsManager();   
     TextBox_Benutzername.Text = cm.Username;   
     TextBox_Passwort.Text = cm.Password;  
    } 
} 
1

나는 문제는 페이지가 나는 새로운 CredentialsManager 빈 이름을 가지고 있다고 가정 (로드되어 각각의 모든 시간 CredentialsManager 새로운를 만드는 것을 생각 암호 필드). 버튼 클릭으로 인해 페이지가 새로 고쳐지지 않을 때 새로운 페이지가로드 될 때만 그렇게해야합니다. 이는 Page.IsPostBack 속성으로 결정되므로 할 일이 필요합니다.

protected void Page_Load(object sender, EventArgs e)  
{ 
    if (!IsPostBack) 
    { 
    CredentialsManager cm = new CredentialsManager(); 
    TextBox_Benutzername.Text = cm.Username; 
    TextBox_Passwort.Text = cm.Password;  
    } 
} 
관련 문제