想用C# .NET 来做个在线问卷调查系统,在做的过程中遇到点问题:
因为问卷的显示页面 不同问题需要不同的控件(如Radiobutton、CheckBox、TextBox等)来显示各问题的所有选项,那么怎 么才能实现这个功能呢?
比如说,第一题的选项要求用单选按钮显示、第二题要求用复选框显示、第三题要求用文本框,那 么怎样才能根据不同问题的显示要求动态的调用相应的控件来进行显示呢?
我现在的想法是把单选按钮、多选按钮、下拉列表、文本框等自带控件放在一个一个数据源控件里,然后都单独封装成用 户控件,然后在需要的时候动态调用,那么怎么才能实现动态调用用户控件呢?
麻烦各位帮助一下,没什么经验,想少走点弯路,谢谢
楼上正解,c=Page.LoadControl("这里写你的自定义控件的路径") as "你的控件类型"
然后可以添加到一个元素中,这个元素的runat="server"设置,然后就可以在后台添加
比如说有一个div,id是d,runat="server"设置了,
然后可以d.Controls.Add(c);
private void loaduc(string flag)
{
Control myUC = new Control();
if (flag == "1")
{
myUC = (Control)Page.LoadControl("a.ascx");
}
else
{
myUC = (Control)Page.LoadControl("b.ascx");
}
loaducdiv.Controls.Add(myUC);
}
loaducdiv为页面的控件
给问题建立类型字段,每种类型对应一种控件,在答题表中建立值字段,把选择的值序列化进去,这样问卷加载时,可以根据类型再序列化出来。
关于动态添加控件,可以在页面建立些总Panel,通过new control,panel.addcontrol(。。)