Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.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/9/javascript/410.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# 如何检查任何表单字段数据是否已更改?_C#_Javascript_Asp.net - Fatal编程技术网

C# 如何检查任何表单字段数据是否已更改?

C# 如何检查任何表单字段数据是否已更改?,c#,javascript,asp.net,C#,Javascript,Asp.net,当客户登录时,我正在使用此应用程序中的asp.net web应用程序 表单字段中显示的个人详细信息(例如姓名框中的全名、年龄框中的年龄等)用于获取数据首先我从ms sql获取数据,然后将其分配给ICCustomer接口属性此接口由customer类实现 我们在客户信息页面上也有一个更新按钮,所以如果用户点击更新按钮而不更改任何信息,那么它将转到服务器并返回,并在数据库中更新相同的数据,所以我想做的就是检测客户表单中是否有变化,然后只更新功能就可以工作了 我有两个选择 仅使用Java脚本并检测到文

当客户登录时,我正在使用此应用程序中的asp.net web应用程序

表单字段中显示的个人详细信息(例如姓名框中的全名、年龄框中的年龄等)用于获取数据首先我从ms sql获取数据,然后将其分配给ICCustomer接口属性此接口由customer类实现

我们在客户信息页面上也有一个更新按钮,所以如果用户点击更新按钮而不更改任何信息,那么它将转到服务器并返回,并在数据库中更新相同的数据,所以我想做的就是检测客户表单中是否有变化,然后只更新功能就可以工作了

我有两个选择

  • 仅使用Java脚本并检测到文本更改,然后无法更新按钮
  • 对ICustomer进行临时引用,并在处理时将其与旧的进行比较,使其正确或错误
  • 因此,请建议我最好的方法或任何其他方法


    如果问题不清楚,请发表评论,我将进一步解释。

    如果您在asp.net网页中使用formview或detailsview控件,则可以在发布到数据库之前使用表单的ItemUpdate事件属性来比较值。我相信表单的viewstate必须启用才能工作

    protected void myFormView_ItemUpdating(object sender, FormViewUpdateEventArgs e)
        {
            // Access the old values
            e.OldValues...
    

    下面是一个完整的示例,使用.

    JavaScript可能会对您有所帮助,但它非常不可靠。我建议你选择第二种选择。将
    iccustomer
    对象存储在会话变量中,并将其与新对象进行比较。

    如果使用
    文本框
    控件,一个选项是使用
    TextChanged
    事件检测更改。

    如果对象的大小不是很大,则应转到第二个选项,因为在与Icustomer的新对象进行比较以检测任何更改之前,必须先存储旧对象。否则,请使用javascript检测文本字段上的更改。但是,正如您所知,它不是非常可靠。

    您可以编写JavaScript代码,在提交表单时记录更改并传递此信息。没有JavaScript的情况下,有人能回答这个问题吗?我遇到了相同的问题,并且.OldValues在ItemUpdate方法中始终为null。我无法将旧值与新值进行比较。谢谢您的回答,但我没有使用formview或details view,我只是使用一个简单的表单,请建议我任何其他解决方案,我必须使用objectcomparsion@Peeyush:最简单的解决方案是在页面加载javascript时捕获表单值,并在已单击表单的“提交”按钮。最好将值缓存在会话变量中,并在服务器上检查这些值。老实说,让表单按预期工作并让它更新数据库似乎是一个更好的主意。您节省的少量处理不值得维护您为检查值而提出的任何系统。谢谢,如果对象很小,这也是正确的方法之一