好的,我知道怎么做,但我想知道这是不是最好的方法。
我有一个名为“Topics”的表,其中包含一个主题列表(obv)。我有一个包含大约20(+/- 10)个复选框的页面,其中包含用户可以订阅的所有不同主题。我认为最好的方法是创建一个控制数组的复选框,并在页面加载时填充它。
问题是复选框是一个独特的排列,我应该将它们放在页面上,然后在加载时动态填充它们吗?这是最好的方法吗?我不太熟悉控制数组。
谢谢!
答案 0 :(得分:2)
定义你的意思“我应该把它们放在页面上”。
你的意思是Drag'n'Drop他们到aspx页面?如果你这样做,你必须复制每一个 - 由页面创建的一个集合,以及由你创建的第二个集合替换第一个集合。
复选框的数量如何变化(“20(+/- 10)”)?它们是来自数据库的选项吗?它们是固定的,但你只是不知道有多少?
ControlCollection的一个有趣的方面是控件一次只能在一个控件中。如果你要尝试:
ControlCollection cool = new ControlCollection ();
coll.Add(Page.Controls[0]);
它将被添加到coll中,但会自动从Page.Controls中删除。
已编辑:(回复评论) 在您的代码隐藏中,手动创建复选框(自从我编写WebForm代码以来已经有一段时间了,所以我在这里稍微讨论一下),并将其置于一个数组中(一个数组应该没有我提到的关于ControlCollection的问题)< / p>
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样式位置属性。