2010-08-27 76 views
0

我有一個形式,其中更改對象列表中的行嗎?

Table SelectedItems    Table AvailableItems 
RecordID CheckBoxID    CheckBoxID  Description 
    1   1       1   'Tomatoes' 
    1   2       2   'Potatoes' 
    1   4       3   'Mangoes' 
    2   1       4   'Apples' 
    2   2  
  1. 現在我必須編輯SelectedItems 爲的recordId 1
  2. 爲此我做了一個複選框 列表,並與 AvaialbeItems
  3. 然後填充它我循環並檢查了 SelectedItems爲的recordId 1個
  4. 用戶選擇來自 阿瓦伊一些新的行拉布勒列表(與舊的一起, 他可能會取消一些爲好)

現在我想更新所選記錄,問題是我想知道的唯一的新記錄插入。

兩個表被返回的業務對象名單<>,如何比較列表,並只提取改變/新行?

請指教。我使用VSS 2005

回答

1

web表單當您選擇結果,你可以更新業務對象(S)和髒呢?我的意思是創建一個類變量作爲一個標誌,你可以檢查它是否被更改或新的。選擇新行(或舊)我認爲會觸發一個事件,您可以使用它來修改所選行的業務對象。

然後,當你通過你的列表,你只需要檢查產生變化/新狀態的業務對象標誌。

+0

謝謝,這似乎是一個不錯的主意,我如何訪問我正在檢查的行的業務對象? – 2010-08-27 06:30:41

+0

我不確定,但我會懷疑,當您選擇一行時,您應該在某個可用於獲取業務對象的事件中。因此,如果我選擇一行,則會引發一個事件,我可以爲該行添加與該行相關聯的業務對象並將其標記的代碼。編輯:我沒有我的C#編譯器在我面前是爲什麼我不知道。 – Robb 2010-08-27 06:33:42

+0

謝謝,我在一段時間後把它整理好了。我必須創建一個基類並在需要時繼承它。但解決方案是基於您最初的建議。 =) – 2010-09-07 16:56:56

0

如果系統已經生產服務器和穩定運行上,請忽略我的答案。如果它仍處於規劃/設計/編程階段,我認爲可能輕微的數據庫更改會使一切變得更加容易。

Table SelectedItems 
RecordID CheckBoxID IsSelected 
    1   1  true 
    1   2  true 
    1   3  false 
    1   4  true 

也就是說,對於一定的recordId和CheckBoxID,你並不需要查詢表,以查找是否有相應的記錄(這意味着它的選擇)。在新設計中,總是有這樣的記錄,具有IsSelected的狀態。

同時,這樣的設計也是在您的網頁很容易maintanance。你改變的只是IsSelected對於某一行的值,你不需要關心「哦,我需要刪除一行還是添加一行?」 「這一行的數據是不是很髒?」......事情變得更容易。