2011-08-30 92 views
1

我在asp.net 4.0中工作 有什麼辦法檢查服務器端,如果我們要離開頁面並將控件重定向到另一個頁面,然後檢查當前窗體,是否有任何被修改的字段?如果是,則先保存該記錄,然後重定向到新頁面。 有什麼辦法可以在服務器端檢查這個嗎? (代碼後面的文件)在服務器端驗證表格

+0

道歉,如果我沒有正確理解你的問題。但肯定你有某種鏈接或按鈕觸發重定向?你能不能在服務器端觸發一個事件,在那裏你可以做相關的驗證,然後適當保存記錄? – Bobby

+0

我不知道如何檢查窗體上是否有變化。我必須檢查變化。我有事件處理。 – asma

回答

1

啊我明白了。作爲一個例子,假設你有一個用戶類,您將使用在頁面加載事件問題

public class User 
    { 
     public int Id { get; set; } 
     public string Username { get; set; } 
     public string Address { get; set; } 
    } 

,以顯示你的頁面形式加載與培訓相關值這個對象,他們使用加載的對象,以顯示該網頁的形式。我們可以稱這個對象爲「LoadedUser」

用戶點擊重定向鏈接後,您需要處理該事件(我知道您正在做這件事),並在此事件中使用頁面窗體上的當前值創建一個新的User對象,那麼我們現在可以調用這個對象「NewLoadedUser」,我們將使用IEquatable接口比較LoadedUser和NewLoadedUser對象。

所以,儘管這增加了用戶類

public class User: IEquatable<User> 
{ 
    public int Id { get; set; } 
    public string Username { get; set; } 
    public string Address { get; set; } 

    public override int GetHashCode() 
    { 
     return Id^Id.GetHashCode(); // or whatever 
    } 

    public override bool Equals(object other) 
    { 
     return this.Equals(other as User); 
    } 

    public bool Equals(User other) 
    { 
     return (other != null && 
       other.Id == this.Id && 
       other.Username == this.Username && 
       other.Address == this.Address); 
    } 
} 

在你的代碼這樣做,你應該能夠在兩個對象比較喜歡在這之後。

bool areEqual = NewLoadedUser.Equals(LoadedUser); 

然後你可以使用areEqual bool標誌來更新記錄與否。

希望這會有所幫助

+0

好的,我會盡快試用這個..非常感謝:) – asma