在ASP.net中的后台代码动态生成的控件没在页面上显示
现在我做一个网页版的问卷调查,要在.CS文件生成题目(lebal控件)和选项(radiobuttom控件)然后我页面什么容器也没加,运行时页面什么都没有,空白一片,什么回...
现在我做一个网页版的问卷调查,要在.CS文件生成题目(lebal控件)和选项(radiobuttom控件)然后我页面什么容器也没加,运行时页面什么都没有,空白一片,什么回事,是不是一定要加一个容器?还有一个问题就是textbox控件texmode改了password后,怎样改变在text的字符,用自己想要的字符来代替黑色圆点?
展开
1个回答
展开全部
实现你要的功能可以采用下面的动态生成的代码,下面是一个简单的例子
for (int i = 0; i < 10; i++)
{
Label lbl = new Label();
lbl.ID = "lbl" + i;
lbl.Text = i.ToString();
//定义其他属性可同上
this.form1.Controls.Add(lbl);
}
在上面的例子中会在页面添加10个label。值为0-9,这里使用的默认的form1添加的可以指定任意的带有runt=“server”的容器添加。另外你可以在数据库中新建一列表示要添加的空间类型contorlType,值为textbox,label,checkbox等,比较方面取值。
至于你要的验证的密码输入框代码如下 实际上和上面的没什么区别都是再添加的时候给属性进行设置
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
Label lbl = new Label();
lbl.ID = "lbl" + i;
lbl.Text = i.ToString();
//定义其他属性可同上
this.form1.Controls.Add(lbl);
TextBox txt = new TextBox();
txt.ID = "txt" + 1;
txt.TextMode = TextBoxMode.Password;
this.form1.Controls.Add(txt);
}
}
更多追问追答
追问
添加就是可以了,谢谢了,不过现在添加了但是很乱,就好像你说的10个lebal出来了,但不会换行,我用了Respose.Write(" 
")来换行却不行,为什么?
追答
Label lbl = new Label();
lbl.ID = "lbl" + i;
lbl.Text = i.ToString()+"《br/》";
//定义其他属性可同上
this.form1.Controls.Add(lbl);
这样写 在他的text中添加《br/》这个里面要换成 <br/>(因为百度的不支持所以才这么写的)表示换行,就可以了 其实你也可以再添加的时候给控件添加样式,然后你之前就把样式准备好也是可以的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询