2011-09-06 57 views
0

我有一個包含aspx文件的Web應用程序。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;  
    } 
}