2011-09-06 74 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;  
    } 
}