【问题标题】:Strange Bug when getting new values from textbox从文本框中获取新值时出现奇怪的错误
【发布时间】:2013-06-21 08:07:28
【问题描述】:

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

这是我用来在保存更改之前获取框的内容的方法:

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();

【问题讨论】:

  • 你是如何设置这些值的?您可以在这里发布整个 Page_Load 吗?
  • 页面中是否启用了 ViewState?
  • 不,我没有启用 ViewState。我会尝试启用它,看看会发生什么。
  • 哦,Page_Load 中的代码似乎覆盖了所有内容,而不管 ViewState。将其包装在 if (!Page.IsPostback) 中,并在 else 分支中读取用户修改的值。
  • 这是一些疯狂的错误处理。

标签: c# asp.net validation textbox


【解决方案1】:

Page_Load 中的旧值正在覆盖新值。您在每次页面加载时为文本框分配旧值,而实际上您只想在第一次调用时执行此操作。在回发上,您不需要分配任何东西:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2012-07-26
    相关资源
    最近更新 更多