C# 文本框值未更新
我使用以下DropDownList事件从MS SQL Server 2005中选择一名员工,并在文本框中显示该员工的信息C# 文本框值未更新,c#,.net,asp.net,textbox,C#,.net,Asp.net,Textbox,我使用以下DropDownList事件从MS SQL Server 2005中选择一名员工,并在文本框中显示该员工的信息 protected void employeeDropDownList_SelectedIndexChanged(object sender, EventArgs e) { EmployeeDAL employeeDAL = new Emplo
protected void employeeDropDownList_SelectedIndexChanged(object sender,
EventArgs e)
{
EmployeeDAL employeeDAL = new EmployeeDAL();
DataTable dataTable = employeeDAL.GetEmployeeData();
for (int i = 1; i <= dataTable.Rows.Count; i++)
{
if (Convert.ToInt32(employeeDropDownList.SelectedValue) == i)
{
nameTextBox.Text = dataTable.Rows[i-1]["employee_Name"].ToString();
useNameTextBox.Text=dataTable.Rows[i-1]["employee_UserName"].ToString();
addressTextBox.Text=dataTable.Rows[i-1]["employee_Address"].ToString();
break;
}
}
}
但问题是。。。文本框的值不变。我的意思是文本框保留了以前在employeeDropDownList\u SelectedIndexChanged事件中分配的值。但是为什么呢?现在该怎么办?在更新文本字段之前,正在执行按钮单击,请在两个EventHandler中放置断点。在文本框和你的dao对象上放一块手表,看看当你发回时它们是如何更新的。我真的不认为这是一个数据问题,但不要完全忽视它,至少在我看来,这是asp.net在回发之间缓存文本框值的问题。在更新文本字段之前执行按钮单击,在两个事件处理程序中都设置断点。在文本框和你的dao对象上放一块手表,看看当你发回时它们是如何更新的。我真的不认为这是一个数据问题,但不要完全忽视它,至少在我看来,这是一个asp.net在回发之间缓存文本框值的问题。好吧,因为我们没有实现您的EmployeeDAL类,所以很难确切知道问题是什么。以下是我要检查的几件事:
好吧,因为我们没有实现你的EmployeeDAL类,所以很难确切地知道问题是什么。以下是我要检查的几件事:
好的,最后我得到了答案,但我无法解释。对于DropdownList,我使用了以下代码:
罪魁祸首是这起超载事件。当我在没有这个OnLoad事件的情况下运行应用程序时,我的问题就解决了。有人能解释一下这个加载事件的错误吗?好的,最后我得到了答案,但无法解释。对于DropdownList,我使用了以下代码:
罪魁祸首是这起超载事件。当我在没有这个OnLoad事件的情况下运行应用程序时,我的问题就解决了。有人能解释一下这个OnLoad事件的错误吗?我没有使用任何文本更改事件。那么,我将如何在文本事件中设置断点?如何调用Text_Changed事件?我在ViewState中没有更改任何内容。我在文本框中没有回发设置。谢谢。我认为没有必要在这里使用onTextChange事件。因为我正在单击按钮将文本框文本分配到属性中。抱歉,我已经连续工作了26个小时,我将参考正确的事件处理程序编辑我的答案。非常感谢您的耐心。我没有使用任何文本更改事件。那么,我将如何在文本事件中设置断点?如何调用Text_Changed事件?我在ViewState中没有更改任何内容。我在文本框中没有回发设置。谢谢。我认为没有必要在这里使用onTextChange事件。因为我正在单击按钮将文本框文本分配到属性中。很抱歉,我已经连续工作了26个小时,我将参考正确的事件处理程序编辑我的答案。非常感谢您的耐心。GetEmployeeData()功能工作正常,并在文本框上显示数据。UpdateEmployee()函数也正常工作。我调试了它们。在employeeUpdateButton中,单击事件EmployeeID值是否正确。文本框中的值未更新,因此数据库正在使用以前的值更新。是否在文本框中启用了ViewState?我为页面启用了EnableViewState=“True”。谢谢,但是单个控件可以通过覆盖页面级别设置来选择退出。所以你应该仔细检查你的控制。也许您可以将文本框的ASPX定义添加到问题中。GetEmployeeData()功能工作正常,并在文本框上显示数据。UpdateEmployee()函数也正常工作。我调试了它们。在employeeUpdateButton中,单击事件EmployeeID值是否正确。文本框中的值未更新,因此数据库正在使用以前的值更新。是否在文本框中启用了ViewState?我为页面启用了EnableViewState=“True”。谢谢,但是单个控件可以通过覆盖页面级别设置来选择退出。所以你应该仔细检查你的控制。也许你可以在你的问题中添加文本框的ASPX定义。我错过了代码部分,但在这里给出了正确的答案。这正是我在最后一次评论(在我的答案下面)中所说的。在回发过程中,在employeeUpdateButton_单击之前,有些东西正在运行。OnLoad事件首先运行,这样就清除了用户输入的新值。在OnLoad运行之后,您的employeeUpdateButton\u Click运行了,但那时已经太晚了。新的价值观已经形成
protected void employeeUpdateButton_Click(object sender, EventArgs e)
{
EmployeeDAL employeeDAL = new EmployeeDAL();
EmployeeDAO employeeDAO = new EmployeeDAO
{
EmployeeID = Convert
.ToInt32(employeeDropDownList.SelectedValue),
Name = nameTextBox.Text,
Username = useNameTextBox.Text,
Address = addressTextBox.Text,
};
employeeDAL.UpdateEmployee(employeeDAO);
}