文本框的值已更改,但aspx页面未更新

时间:2017-07-17 09:38:41

标签: asp.net variables edit

我是asp.net的新手,我提出了一个问题。我使用查询字符串加载更新aspx页面,如edit.aspx?Id=123。在Load事件中,我读取了查询字符串并加载了正确的记录。通过按钮,我更新了记录,因此我为变量分配了文本框的新值,但我不明白为什么不考虑新文本框的值。我以这种方式分配值(例如new_email = txemail.text),但系统在new_email变量中分配编辑记录的相同值。 有人能帮助我理解我犯的错吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

这里的代码,我可能犯了关于回发的错误,对我来说不是那么清楚。在任何情况下,我都尝试过updateRecord void,无论是(!IsPostBack)还是(IsPostBack),但无论如何变量都没有获得更新的值。

     protected void Page_Load(object sender, EventArgs e)
    {
        // check if querystring has value
        if (Request.QueryString["Id"] != null)
        {
            int idUser = Convert.ToInt32(Request.QueryString["Id"]);
            loadRecord(idUser);
        }
    }



protected void btSave_Click(object sender, EventArgs e)
        {
            // update record, deliberately simply, just for test purposes
            int idUser = Convert.ToInt32(Request.QueryString["Id"]);
            updateRecord(idUser);

        }

  private void updateRecord (int idRecord)
    {
        string new_FirstName = string.Empty;
        string new_LastName = string.Empty;
        string new_Email = string.Empty;

        try
        {  
            if(IsPostBack)
            {
                new_FirstName = txFirstName.Text;
                new_LastName = txLastName.Text;
                new_Email = txEmailAddr.Text;
            }


            using (AddressBookEntities abe = new AddressBookEntities())
            {
                User updateUser = (from user in abe.Users
                           where user.IdUser == idRecord
                           select user).FirstOrDefault();

                updateUser.FirstName = new_FirstName;
                updateUser.LastName = new_LastName;
                updateUser.Email = new_Email;

                abe.SaveChanges();                    

            }

        }
        catch (Exception ex)
        {
            txError.Text = ex.ToString();
        }

    }