如何检查是否有任何表单字段数据被更改?

Pee*_*ush 2 javascript c# asp.net

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

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

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

我有两个选择

  1. 只使用Java脚本并检测到文本更改然后无法更新按钮.
  2. 对ICustomer进行临时引用,然后将其与旧版本进行比较,然后通过制作真或假的方法进行处理.

所以请建议我最好的方法或任何其他方法.

如果问题不清楚,那么只是评论它我会解释更多.

Dan*_*abo 5

如果您在asp.net网页中使用formview或detailsview控件,则可以使用窗体的itemupdating事件的OldValues属性来比较发布到数据库之前的值.我认为必须启用表单的viewstate才能使其正常工作.

protected void myFormView_ItemUpdating(object sender, FormViewUpdateEventArgs e)
    {
        // Access the old values
        e.OldValues...
Run Code Online (Sandbox Code Playgroud)

这是使用detailsview的完整示例.

  • @Peeyush:最简单的解决方案是在页面加载javascript时捕获表单值,并在单击表单的提交按钮时检查它们.将值缓存在会话变量中并检查服务器上的值可能是个好主意.老实说,似乎让表单按预期工作并让它更新数据库是个更好的主意.您节省的少量处理不值得维护您为检查值而提出的任何系统. (2认同)