C# 如何检查任何表单字段数据是否已更改?
当客户登录时,我正在使用此应用程序中的asp.net web应用程序 表单字段中显示的个人详细信息(例如姓名框中的全名、年龄框中的年龄等)用于获取数据首先我从ms sql获取数据,然后将其分配给ICCustomer接口属性此接口由customer类实现 我们在客户信息页面上也有一个更新按钮,所以如果用户点击更新按钮而不更改任何信息,那么它将转到服务器并返回,并在数据库中更新相同的数据,所以我想做的就是检测客户表单中是否有变化,然后只更新功能就可以工作了 我有两个选择C# 如何检查任何表单字段数据是否已更改?,c#,javascript,asp.net,C#,Javascript,Asp.net,当客户登录时,我正在使用此应用程序中的asp.net web应用程序 表单字段中显示的个人详细信息(例如姓名框中的全名、年龄框中的年龄等)用于获取数据首先我从ms sql获取数据,然后将其分配给ICCustomer接口属性此接口由customer类实现 我们在客户信息页面上也有一个更新按钮,所以如果用户点击更新按钮而不更改任何信息,那么它将转到服务器并返回,并在数据库中更新相同的数据,所以我想做的就是检测客户表单中是否有变化,然后只更新功能就可以工作了 我有两个选择 仅使用Java脚本并检测到文
如果问题不清楚,请发表评论,我将进一步解释。如果您在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时捕获表单值,并在已单击表单的“提交”按钮。最好将值缓存在会话变量中,并在服务器上检查这些值。老实说,让表单按预期工作并让它更新数据库似乎是一个更好的主意。您节省的少量处理不值得维护您为检查值而提出的任何系统。谢谢,如果对象很小,这也是正确的方法之一