簡體   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