2008-10-30 72 views
2

好吧,我知道如何做到這一點,但我想知道這是否是最好的方法。設計問題 - 控制陣列

我有一個名爲「主題」的表格,其中有主題列表(obv)。我有一個包含大約20(+/- 10)個複選框的頁面,其中包含用戶可以訂閱的所有不同主題。我想最好的辦法是製作一個複選框的控件數組並在頁面加載時填充它。

問題是,複選框是獨特的安排,我應該把它們放在頁面上,然後動態填充他們的負載?這是做這件事的最好方法嗎?我對控制陣列不太熟悉。

謝謝!

回答

2

定義「我應該將它們放在頁面上」的含義。

你的意思是將Drag'n'Drop拖放到aspx頁面上?如果你這樣做了,你必須複製每一個 - 一個由頁面創建的集合,另一個由你創建並替換第一個集合。

複選框的數量如何變化(「20(+/- 10)」)?他們的選擇來自數據庫嗎?它們是固定的,但你不知道有多少呢?

ControlCollection的一個funkey方面是控件一次只能有一個。如果你想嘗試:

ControlCollection cool = new ControlCollection(); 
coll.Add(Page.Controls[0]); 

它會被添加到科爾,但它會自動從Page.Controls中刪除。

編輯:(迴應評論) 在您的代碼隱藏,手動創建的複選框(它已經,因爲我寫的WebForm代碼一段時間,所以我在這裏voguing位),並放置在一個數組(數組不應該有我提及的ControlCollection問題)

CheckBox[] boxes = new Checkbox[20]; 
for(int i =0; i< 20; ++i) 
{ 
    boxes[i] = new CheckBox(); 
    // do stuff here 
    Page.Controls.Add(boxes[i]); 
} 

現在的「做的東西在這裏」,我們需要讓他們在正確的地方。有很多方法。我們可以在他們周圍建立一個<table>;我們可以在我們添加的aspx中有<asp:placeholder>控件;我們可以設置CSS樣式的位置屬性。

+0

複選框的數量可能因數據庫中給出的值而異。 那麼,最好的辦法是讓頁面放置複選框?我不知道是否可以將頁面放入配置中。我需要三列複選框。我需要能夠遍歷它們。 – 2008-10-30 19:34:51