在编辑配置文件页面提交表单时,文本框值保持不变

本文关键字:文本 配置文件 编辑 表单 提交 | 更新日期: 2023-09-27 17:49:33

我试图创建一个编辑配置文件页面,所以当页面加载时,我填充所有文本框的值为当前在数据库中为特定用户的值。我使用以下代码:

        DBconn obj1 = new DBconn();
        String sql1 = "select* from users where user_id='" + Session["user_id"].ToString() + "'";
        DataTable dt = new DataTable();
        dt = obj1.getdatatable(sql1);
        if (dt.Rows.Count > 0)
        {
            referal_id.Text = dt.Rows[0]["referal_id"].ToString();
            name.Text = dt.Rows[0]["name"].ToString();
            password.Text = dt.Rows[0]["password"].ToString();
            email.Text = dt.Rows[0]["email"].ToString();
            mobile.Text = dt.Rows[0]["mobile"].ToString();
            city.Text = dt.Rows[0]["city"].ToString();
            state.Text = dt.Rows[0]["state"].ToString();
            pincode.Text = dt.Rows[0]["pincode"].ToString();
            sec_ques.Text = dt.Rows[0]["securityq"].ToString();
            answer.Text = dt.Rows[0]["answerswer"].ToString();
            age.Text = dt.Rows[0]["age"].ToString();
            gender.Text = dt.Rows[0]["gender"].ToString();
            user_id.Text = dt.Rows[0]["user_id"].ToString();
            address.Text = dt.Rows[0]["address"].ToString();
            date_of_joining.Text = dt.Rows[0]["date_of_joining"].ToString();
            user_type.Text = dt.Rows[0]["user_type"].ToString();
        }

现在用值填充所有的文本框。当用户编辑某些文本框中的某些值并重新提交表单时,数据库正在更新,实现代码:

protected void LinkButton1_Click(object sender, EventArgs e)
{
    int i;
    DBconn obj2 = new DBconn();
    String sql2 = "update users set name='"+name.Text+"',address='"+address.Text+"',age='"+age.Text+"',gender='"+gender.Text+"',email='"+email.Text+"',mobile='"+mobile.Text+"',securityq='"+sec_ques.Text+"',answer='"+answer.Text+"',city='"+city.Text+"',state='"+state.Text+"',pincode='"+pincode.Text+"' where user_id='"+Session["user_id"].ToString()+"'";
    i = obj2.executeDML(sql2);
    if (i > 0)
    {
        Label1.Visible = true;
        Image2.Visible = true;
        Label1.Text = "Updated successfully!";
    }
    else
    {
        Label1.Visible = true;
        Label1.Text = "Oops Update was unsuccessfull!";
    }
}

问题是数据库正在更新数据库中已经存在的先前值。当我使用观察点时,我发现SQL语句加载了我使用上述数据库代码绑定的文本框值,但它没有获取用户编辑的值。

请帮助。

在编辑配置文件页面提交表单时,文本框值保持不变

嘿,Robin,请检查代码是否放置在!IsPostback条件下

请绑定if循环下的值。

    if(!IsPostback)
    {
    // Bind values
    }

这些值只能在第一次加载页面时绑定。

在你的例子中,似乎文本框的值在每次加载时都被绑定(即使在回发中也加载了值)

因此,在页面加载时必须检查页面是否回发。

因此,在绑定页面加载值时添加此条件。

 if(!IsPostback)      

首先检查调用绑定值的方法的位置…

把它放在

<引用类>

Page.isPostback

所以它在发布时不会改变值然后当你保存它时值会改变

当你点击按钮和页面再次加载时,值必须改变。