我正在使用此应用程序中的asp.net Web应用程序,当客户登录然后他/她
表单字段中显示的个人详细信息(例如,名称框中的全名,年龄框中的年龄等)用于首先获取数据我从ms sql获取数据然后将它们分配给 ICustomer 接口属性此接口由客户类实施。
我们在客户信息页面上也有一个更新按钮,所以如果用户点击更新没有更改任何信息,那么不必要它将转到服务器并返回并在数据库中更新相同的数据,所以我想要我们只是检测客户表单中是否有任何更改,然后只有更新功能才能正常工作。
我有两个选项
所以请建议我使用它或任何其他方法的最佳方法。
如果问题不清楚,那么只需对其进行评论,我会解释更多。
答案 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来检测文本字段的更改。但是你知道它不太可靠。