我正在使用以下DropDownList事件从MS SQL Server 2005中选择一名员工,并在TextBox上显示员工的信息。
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;
}
}
}
然后我使用以下Button事件来更新员工信息。
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);
}
但问题是...... TextBoxes的值没有变化。我的意思是TextBoxes保留了在employeeDropDownList_SelectedIndexChanged事件中分配的先前值。但为什么?我现在该怎么办?
答案 0 :(得分:0)
在文本字段更新之前正在执行按钮单击,在两个事件处理程序中都设置了一个断点。把手表放在文本框和你的dao对象上,看看当yhou回发时它们是如何更新的。我真的不认为这是一个数据问题但是并没有完全打折它,至少对我来说,似乎是一个asp.net问题,在回发之间缓存文本框值。
答案 1 :(得分:0)
好吧,既然我们没有实施你的 EmployeeDAL 类,那么确切地知道问题是什么有点困难。以下是我要检查的一些事项:
答案 2 :(得分:0)
好的,我终于得到了答案,但无法解释。对于DropdownList,我使用了以下代码:
主要罪魁祸首是这个OnLoad事件。当我在没有此OnLoad事件的情况下运行应用程序时,我的问题就解决了。任何人都可以解释这个OnLoad事件的错误吗?