从文本框中获取新值时的奇怪Bug

本文关键字:Bug 新值时 获取 文本 | 更新日期: 2023-09-27 18:19:25

我有一个网站,在页面加载时,从数据库检索某些信息并填充一些文本框。用户可以修改这些文本框的内容,如果他想做任何更改,然后他可以保存更改。

在保存更改之前,我使用以下命令来获取框的内容:

string username = Session["Username"].ToString();
string vendor_name = Textbox_Vendor.Text;
string address = Textbox_Address.Text;
string city = Textbox_City.Text;
string country = Textbox_Country.Text;

现在,我遇到的主要问题是正在检索的值是旧值。例如,假设在页面加载时,tel字段为12345678,用户将文本框中的值更改为789046778。在保存更改之前,在变量tel中加载的值是12345678,而不是789046778。

如何从文本框中检索新更新的值?谢谢你:)

页面加载

protected void Page_Load(object sender, EventArgs e)
{
    Label_Error.Visible = false;
    Encryption enc = new Encryption();
    if (Session["Username"] == null)
    {
        Response.Redirect("HomePage.aspx");
    }
    else
    {
        string username = Session["Username"].ToString();
        string vendor_name = "";
        string address = "";
        string city = "";
        string country = "";
        bool exists1 = false;
        bool error1 = true;
        try
        {
            string connection1 = ConfigurationManager.ConnectionStrings["DB_Connection"].ConnectionString;
            SqlConnection conn1 = new SqlConnection(connection1);
            SqlDataReader rdr1 = null;
            conn1.Open();
            SqlCommand cmd1 = new SqlCommand("GetByUsername", conn1);
            cmd1.CommandType = CommandType.StoredProcedure;
            cmd1.Parameters.AddWithValue("@username", username);
            rdr1 = cmd1.ExecuteReader();

从文本框中获取新值时的奇怪Bug

Page_Load中的新值被旧值覆盖。您在每次页面加载时都将旧值分配给文本框,而实际上您只想在第一次调用时这样做。在回发时,您不需要分配任何内容:

if (!Page.IsPostback)
{
    // first call - assign values
    Textbox_Vendor.Text = vendor_name;
    ...
}