2012-01-17 83 views
0

在頁面上執行數據訪問操作,然後用檢索到的數據填充每個用戶控件的屬性會更好嗎?頁面或每個用戶控件中的ASP.NET數據綁定?

- 或 -

是更好,如果每個UC調用業務層和獨立拉扯自己的數據,而不必依賴在頁面上。

現有條件: 1.任何信息(查詢字符串,URL等),該頁面將用於數據訪問也提供給個人UC的 2.這兩個解決方案利用緩存。

我的同事堅持認爲第一個選項更好,因爲數據訪問只發生在頁面上一次。

第二個選項對我來說似乎更合乎邏輯,因爲它可以讓我把UC放在另一個頁面上,而不需要在頁面上進行任何額外的連線。該頁面和UC是真正解耦的。

請告知爲什麼一個會比另一個好。

+0

2一看起來不錯的選擇。你的數據有多大? – 2012-01-17 20:04:33

回答

3

在大多數情況下,第一種選擇更好。

UserControl不是控制器,而是頁面。它應該顯示數據不能訪問它。該頁面通常設置UserControl的屬性。

其中一個目的是可重用性。如果與數據源硬鏈接,這會減少。它應該適用於任何類型的DAL,它不應該打擾他們。

但是,如果它的唯一目的是封裝(即在TabContainer的TabPanel中使用的容器控件)UserControl是頁面替換,因此也是數據訪問和事件處理。你不會經常重複使用這種UserControl。

1

你們倆都是對的。

如果您有任何重用用戶控件的計劃,那麼您應該在該控件中封裝數據訪問。

但是,如果您在頁面上有多個用戶控件,訪問數據一定會更有效率。

我們經常在類似情況下執行的操作是實現混合解決方案:用戶控件託管在實現數據檢索界面(從頁面拉出)的頁面上,或者用戶控件實現一個表示類型的界面他們需要的數據(頁面然後將數據推送到用戶控件)。

相關問題