2

我有一个网络表格,用于注册新员工。表格中有 3 个部分:个人信息、地址信息、特殊状态。但是整个表单只有一个按钮。当我提交表单时,所有信息都会更新到数据库中。因此对数据库执行了三个更新语句。这些方法是 UpdatePersonalInfo、UpdateAddressInfo 和 UpdateSpStatus。有没有办法检查某个部分中的任何字段是否发生了变化,并且只有在它是真的时才运行更新方法。所以是这样的:

if (There's been any change to the personal data of the employee)
{
  UpdatePersonalInfo;
}
if (There's been any change to the address information of the employee)
{
  UpdateAddressInfo;
}

当然我知道,我可以将所有先前的值保存在 PageLoad 中的会话对象中,然后在运行该方法之前一一比较它们。但我想也许有一种更容易做到这一点的神奇方法。

4

1 回答 1

3

不确定这是否是比您已经提到的任何替代方案更好的解决方案,但您可以创建一个默认处理程序来附加到控件的TextChangedSelectedIndexChanged等事件,以跟踪哪些事件已更改。

List ChangedControls = new List(Of, String);
private void ChangedValue(object sender, System.EventArgs e) {
    WebControl cntrl = (WebControl) sender;
    ChangedControls.Add(cntrl.ID);
}

然后在您的按钮上单击搜索ChangedControls相关控件的列表。

于 2012-08-25T12:24:36.900 回答