C# ASP.NET-如何检查一个或多个字段值是否已更改
我有一个网上表格,在那里我注册了一名新员工。表格中有三个部分:个人信息、地址信息、特殊状态。但是整个表单只有一个按钮。当我提交表单时,所有信息都会更新到数据库中。因此,对数据库执行三条Update语句。这些方法是UpdatePersonalInfo、UpdatedDressInfo和UpdatesStatus。是否有一种方法可以检查特定部分中的任何字段是否发生了更改,并仅在该字段为真时运行update方法。比如说:C# ASP.NET-如何检查一个或多个字段值是否已更改,c#,asp.net,C#,Asp.net,我有一个网上表格,在那里我注册了一名新员工。表格中有三个部分:个人信息、地址信息、特殊状态。但是整个表单只有一个按钮。当我提交表单时,所有信息都会更新到数据库中。因此,对数据库执行三条Update语句。这些方法是UpdatePersonalInfo、UpdatedDressInfo和UpdatesStatus。是否有一种方法可以检查特定部分中的任何字段是否发生了更改,并仅在该字段为真时运行update方法。比如说: if (There's been any change to the perso
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中,然后在运行该方法之前逐个比较它们。但是我想也许有一种神奇的方法可以更容易地做到这一点。不确定这是一个比您已经提到的任何替代方案更好的解决方案,但是您可以创建一个默认处理程序来附加到
TextChanged
,SelectedIndexChanged
,etc控件的事件,以跟踪哪些控件已更改
List ChangedControls = new List(Of, String);
private void ChangedValue(object sender, System.EventArgs e) {
WebControl cntrl = (WebControl) sender;
ChangedControls.Add(cntrl.ID);
}
然后单击按钮,在
更改控件
列表中搜索相关控件。您的控件是否仅位于页面上,或包含在表单视图
或任何内容中?不是在表单视图中,而是在更新窗格中