【发布时间】: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