2008-10-30 37 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