繁体   English   中英

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

[英]textbox value remains unchanged on form submission in edit profile page

我正在尝试创建一个编辑配置文件页面,因此当页面首次加载时,我将所有文本框值填充为特定用户在数据库中存在的值。我正在使用代码进行此操作:

        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]["answer"].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语句加载了文本框值,该文本框值是使用上述数据库代码绑定的,但未获取其中的值用户进行编辑。

请帮助。

嘿罗宾,请检查代码是否放在!IsPostback条件下。

请在此if循环下绑定值。

    if(!IsPostback)
    {

    // Bind values

    }

在页面加载上执行此操作。

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

在您的情况下,似乎每次加载文本框的值都是绑定的(即使在回发中也加载值)。

因此,在页面加载中,您必须检查条件页面是否为回发。

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

 if(!IsPostback)      

首先检查您从哪里调用绑定绑定值的方法的位置...

穿上

Page.isPostback

因此它不会在发布时更改值,那么当您保存它时,值将更改

当您单击按钮并再次加载页面时,值必须更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM