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

时间:2011-12-28 02:43:18

标签: c# javascript asp.net

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

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

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

我有两个选项

  1. 只使用Java脚本并检测到文本更改,然后无法更新按钮。
  2. 制作ICustomer的临时引用,并将其与旧版本进行比较,然后通过制作真或假的方式进行处理。
  3. 所以请建议我使用它或任何其他方法的最佳方法。

    如果问题不清楚,那么只需对其进行评论,我会解释更多。

4 个答案:

答案 0 :(得分:5)

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

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

以下是使用detailsview的完整示例。

答案 1 :(得分:2)

JavaScript可能对您有所帮助,但它非常不可靠。我说第二个选择。将ICustomer对象存储在Session变量中,并将其与新变量进行比较。

答案 2 :(得分:2)

如果您使用TextBox控件,则可以使用TextChanged事件来检测更改。

答案 3 :(得分:1)

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