动态添加不同的用户控件

时间:2010-10-18 20:20:16

标签: asp.net user-controls

我正在建立一个网站,让教师能够报告课堂上学生的学业进展。我已经在网站上设置了两个主要页面:一个用户控件显示类(一个GridView的基本类信息,一个子GridView在一个模板字段中显示学生姓名和复选框来选择它们 - 称为MiniStudents) ,另一个用户控件显示选定的学生 - 称为FullStudents。

尽管不太可能,教师可能会在两个不同的班级中拥有同一个学生。我已经在当前的页面设置中考虑了这一点 - 学生ID和类ID的组合(每个季度更改类ID,对于那些认为这将是一个问题的人)在数据库中形成一个唯一的密钥。最近,我的一位用户询问我是否可以通过页面上的类来打破记录,以便教师能够轻松识别他们正在操作的课程。

所以,我的问题是:我是否有可能在类用户控件的末尾动态添加一列,以便我可以为FullStudents切换MiniStudents?

如果我遗漏了任何重要细节,或者有人想要/需要代码,请告诉我。

3 个答案:

答案 0 :(得分:1)

试试这个:

//Under page_load
string path;
if(condition) path = "~/MiniStudents.ascx";
else path = "~/FullStudents.ascx";
Control userControl = this.LoadControl(path);
panel1.Controls.Add(userControl);

如果您在usercontrol呈现之前要设置特定属性,那么让它们继承自定义usercontrol类:

public class CustomControl : UserControl

public class MiniStudents : CustomControl
public class FullStudents : CustomControl

那么你可以这样做:

CustomControl userControl = (CustomControl)this.LoadControl(path);
userControl.UserId = userId;

我希望这有帮助!

答案 1 :(得分:0)

您可以添加两者,并隐藏其中一个。

答案 2 :(得分:0)

您可以使用多视图控件来控制哪个控件可见。如果您同时加载所有这些控件,我会担心您的视图大小。听起来网页上可能会有很多数据和标记。