ASP.NET - 如何检查是否已更改一个或多个字段值

时间:2012-08-25 11:45:54

标签: c# asp.net

我有一个网络表单,我注册了一名新员工。表格中有3个部分:个人信息,地址信息,特殊状态。但是整个表单只有一个按钮。当我提交表单时,所有信息都会更新到数据库。因此,对数据库执行了三个Update语句。方法是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中的会话对象中,然后在运行该方法之前逐个进行比较。但我想也许有一种神奇的方法可以更容易地做到这一点。

1 个答案:

答案 0 :(得分: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列表。