例如,假設我有3個可能的項目狀態,使用什麼技術將活動項目列表限制在列表中,除非需要爲了歷史目的而包含非活動項目?
- 打開
- 關閉
- 無效
讓我們假設我已經創建了兩個項目,一個用的狀態「打開「,另一個狀態爲」無效「。然後,在路上的某個地方,狀態「不活動」不再適當,因此它通過狀態表中的某個「IsActive」標誌取消激活。這會導致它不再顯示在綁定到DropDownList或等效列表的狀態列表中。
因此,現在當用戶創建新的項目項目時,「添加新的」屏幕應該只顯示兩個活動狀態,即打開和關閉。但是現在讓我們假設他們正在編輯過去的項目,這些項目的狀態可能不再活躍和可用。使用什麼技術在列表中包含非活動狀態,至少在使用活動狀態重新保存之前? (雖然我可能會允許與舊的狀態重新進行保存。)
我看到幾個選項,不過話說從未解決了這個問題,我不知道之前,這將是最簡單的維護:
- 始終從存儲庫中選擇所有可能的狀態,並在託管代碼中過濾掉除當前在項目上設置的狀態以外的非活動狀態,並使用此列表進行綁定。
- 只從存儲庫中選擇活動狀態,並在託管代碼中追加(合併)項目中的狀態到列表中,並與此列表綁定。
- 將項目的標識符傳遞給檢索狀態的SQL,並使用它將項目的當前狀態聯合到活動狀態列表中,並使用此列表進行綁定。
看起來好像實施起來相當簡單,但就像我說的,我沒有經歷過這種情況。我有幾個可以通過管理員可用的維護屏幕激活/取消激活的項目列表;有些將保持相當靜態,但少數將會無限增長。選項2和3在列表變大時效率最高,但選項1似乎最容易實現。
我比較關心時間而不是表現這一點。我正在爲一個ASP.NET應用程序,.NET 2.0,C#,用於UI的Web表單以及用於數據層的(I/My)Batis.NET,它與SQL Server數據庫進行對話。
你會建議我做什麼,StackOverflow的神?
平底船。如果有「有效」記錄,請不要讓它們「停用」狀態。 – 2011-05-26 01:57:25
@Anthony:我已經想過了,但在某些時候,這些「項目」永遠是「封閉的」,永遠不會再被編輯。我與自己的辯論是,我是否應該重新使用UI的封閉項目,因爲他們不需要再編輯。知道我在說什麼? – 2011-05-26 02:06:41