2010-04-14 38 views
1

我有一個基本的IDE用於我正在構建的用戶控件。它允許我將標籤添加到面板並移動它們,就像非常基本的表單設計器一樣。在運行時添加時指定唯一的控件名稱(如VS IDE)

當我在運行時將控件添加到面板時,我想給控件一個唯一的名稱字符串,例如VS IDE如何跟蹤它已有的控件,並在創建默認控件名稱時添加一個額外的數字。每次添加新控件時,我都嘗試檢查控件集合,但不確定是否有一個很好的字符串比較方法返回名稱,並在尚未使用的末尾返回一個唯一編號。

回答

0

最簡單的方法是維護排序數組中的名稱列表,以便您可以選擇最後一個名稱並根據它創建一個新名稱。

0

你可以創建一個快速和髒的ASP.NET頁面,轉儲一堆控件,運行它並研究自動生成的ClientID。 ASP.NET(至少< v4)的方式是命名空間名稱,然後在最後添加一個數字。命名空間合併了父(容器)控件的部分名稱/命名空間。

所以你的情況,如果新放置的按鈕在一個DIV它已經在其頁面上託管一個div下降,產生的自身名稱爲:

div1_div1_button[x] 

[x]會是你生成的號碼。一種簡單的生成方法是獲取父容器中已經存在的子控件的數量並將其增加1。由於命名空間相對於頁面,因此沒有對託管頁面的引用。 ASP.NET在渲染之前重新評估自動生成的服務器控件的名稱,這樣就不可能在同一頁面中獲得名稱衝突(如果2個相同的控件結構位於同一父級中,則那些控件將得到1附加到它的自動生成名稱,另一個將附加2,所以沒有碰撞)。

希望這有助於:)

+0

感謝球員,我最後使用排序的數組方法,完美的作品。 – 2010-09-07 09:47:27

相關問題