我正在構建一個產品目錄,每頁顯示50/100個產品。 由於我想在我的網站上有不同的瀏覽部分,我已將每個產品 放到UserControl中。那麼,不是產品本身的課程,而是一些標籤,div和 和圖像。然後在處理數據庫結果時在運行時設置它的屬性。所以我的優勢是我只需要在整個網站的1個地方改變產品控制。我在循環中使用LoadControl將控件放在頁面中。asp.net usercontrol vs customcontrol vs stringbuilder
但是頁面加載速度不如其他頁面處理相同db查詢並使用StringBuilder輸出相同html的速度。而且,因爲我希望我的網站在收到一些像樣的流量時表現的很好,所以我很擔心這一點。我還沒有做任何基準,但我清楚地看到了差異。
我的問題夠了!我對你的問題是'是否有任何替代方法可以更快地使用LoadControl進行定製控制,但易於維護(或者至少在1個位置)?「
我在想:
- 創建customcontrol(雖然我從來沒有做過,不知道100%,這是否會加快速度)
- 繼續與StringBuilder的方法,並把在我的基類
- 的CreateProduct開溝1個位置
保持了產品的整個想法,我希望你們有過類似情況的選擇,所以我很想聽到˚F rom你!
[編輯]代碼[/編輯] 我沒有excact用戶控件代碼在這裏,但是當我拿到home..but這裏是簡化的想法,我會編輯這個職位:
1)讓我數據庫結果(使用亞音速2.2作爲我DAL)
DAL.ProductCollection coll = new DAL.ProductCollection();
if(coll.count > 0)
{
foreach(DAL.Product item in coll)
{
Control p = LoadControl("FeaturedProduct.ascx");
placeholder.Controls.Add(p);
//Set properties
p.title = item.Title;
p.img = GetImage(item.Guid);
....etc
}
}
我的用戶itselves只是由3個立即控制和1點圖像的控制。
但我會在我到家時發佈完整的代碼! 謝謝
你可以發佈一些你的html輸出嗎?和你的產品`UserControl`?當你調用`LoadControl()`時? – hunter 2010-12-22 19:30:49