簡體   English   中英

apsx.cs文件中的文本框不會更新更改的文本

[英]Textbox in apsx.cs file won't update a changed text

我有一個由aspx文件組成的Web應用程序。

在頁面加載時,兩個文本框填充了數據(“用戶名”和“密碼”)。 這可行。

在按鈕上單擊它應該保存文本框的文本。 但是由於某些原因,如果我同時手動更改了文本框的文本(通過使用鍵盤輸入一些字母),則文本框的文本不會更新。

這是為什么? 我如何告訴我的程序考慮我的更改?

我的代碼是:

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

有關更多信息,請參見下面的答案。 感謝大家!

嘗試檢查回發-

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代碼當前將在每次單擊按鈕(或回發)后運行,並覆蓋您手動添加的值。

嘗試這個,

protected 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方法更改為:

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

我認為問題在於,每次加載頁面時,您都在創建一個新的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;     
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM