Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET-如何检查一个或多个字段值是否已更改_C#_Asp.net - Fatal编程技术网

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

C# ASP.NET-如何检查一个或多个字段值是否已更改,c#,asp.net,C#,Asp.net,我有一个网上表格,在那里我注册了一名新员工。表格中有三个部分:个人信息、地址信息、特殊状态。但是整个表单只有一个按钮。当我提交表单时,所有信息都会更新到数据库中。因此,对数据库执行三条Update语句。这些方法是UpdatePersonalInfo、UpdatedDressInfo和UpdatesStatus。是否有一种方法可以检查特定部分中的任何字段是否发生了更改,并仅在该字段为真时运行update方法。比如说: if (There's been any change to the perso

我有一个网上表格,在那里我注册了一名新员工。表格中有三个部分:个人信息、地址信息、特殊状态。但是整个表单只有一个按钮。当我提交表单时,所有信息都会更新到数据库中。因此,对数据库执行三条Update语句。这些方法是UpdatePersonalInfo、UpdatedDressInfo和UpdatesStatus。是否有一种方法可以检查特定部分中的任何字段是否发生了更改,并仅在该字段为真时运行update方法。比如说:

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);
}

然后单击按钮,在
更改控件
列表中搜索相关控件。

您的控件是否仅位于页面上,或包含在
表单视图
或任何内容中?不是在表单视图中,而是在更新窗格中