2010-07-22 30 views
2

因此,我們必須在樹格式顯示數據這一傳統的代碼。它們使用間隔圖像填充樹的每個節點(... yup..ugh)重用昂貴的用戶控件

不幸的是,這些圖像的使用是由我們不得不使用的內部UserControl控制的(基本上只是從不過)。

好了,原來我們有上千個節點的大樹,每一個四層深以上。這意味着我們每次繪製頁面時都會創建大約10,000個填充圖像,這佔用了相當多的時間。

我的解決方案,現在是靜態預先分配大量的這些圖片,並使用這些。我希望當多個用戶同時訪問該頁面時,不會出現任何混亂。

但是......有沒有什麼辦法重用用戶控件,使得我們可以創建圖像的只是一個單一的實例,並以某種方式將其添加多次到控件集合?我天真地嘗試過,但沒有奏效。該圖像只能繪製一次,對於第一次添加的第一個控件(可能與INamingConainer的東西有關...?)

+0

由該控制動態創建的paddding圖像,或做他們只是指向某個地方託管的靜態圖像? – 2010-07-22 14:43:27

+0

控件字面上只是一個圖像?或者它有任何特殊的屬性/ CSS? – GenericTypeTea 2010-07-22 14:48:25

回答

0

您是否考慮在backgound線程中加載樹的內容?

+0

不幸的是我不認爲這會有很大幫助。問題是整體頁面加載時間和用戶體驗。生成這些10k圖像控件在時間上佔據主導地位。 – 2010-07-22 14:36:17

2

只是一個想法,但你不只是用不同的用戶控制更換填充圖像用戶控制,如:

public DivPadder : HtmlGenericControl 
{ 
    public DivPadder() : base("div") 
    { 
     this.Style.Add("padding:10px"); 
    } 
}