文本框不清楚

时间:2013-07-19 17:15:04

标签: c# asp.net

我用以下内容填充我的texbox:

foreach (User u in userInfo)
{
    txtNickname.Text = u.Nickname;
    txtFirstName.Text = u.FirstName;
    txtLastName.Text = u.LastName;
    txtEmail.Text = u.Email;
}

我的文本框现在填充了数据库中的数据。

例如,我在所有texbox中填充新值,然后点击按钮,而不是这样:

if (txtNickname.Text != String.Empty && txtFirstName.Text != String.Empty && txtLastName.Text != String.Empty && txtEmail.Text != String.Empty)
{
   //TODO
}

但是当我调试时:文本框的值是旧值(来自foreach循环的值),而不是我填写在文本框中的新值。

为什么会这样?我正在从文本框中的数据库加载一些数据,之后我自己更改了文本框的值,当我调试文本框时,值仍然是数据库值(参见foreach-loop)。

1 个答案:

答案 0 :(得分:3)

如果在Page_Load事件中执行了第一个循环,那么您应该确保在单击按钮后回发页面时不再执行。

MSDN上Page.IsPostBack的更多信息

private void Page_Load()
{
    if (!IsPostBack)
    {
        // This code should be executed only when the page is being 
        // rendered for the first time not when is responding to a postback 
        // raised by the <runat="server">  controls
        UserInfoCollection userInfo = GetUserInfoCollection();

        foreach (User u in userInfo)
        {
            txtNickname.Text = u.Nickname;
            txtFirstName.Text = u.FirstName;
            txtLastName.Text = u.LastName;
            txtEmail.Text = u.Email;
        }
    }
}