老实说,asp.net开发,我只会简单的拖拖服务器控件。 因为我做网页没得多大兴趣。嘿嘿.......
--------------------------问题描述
最近老是在捣鼓。捣鼓啥呢? 动态添加ASP.NET控件。然而结果却让我很失望呢。我虽然生成了控件,但是无法获取动态生成控件的值。
比如:
下面的代码,动态添加一个控件Label
///----------------------学术水平
academy_Label = new Label();
academy_Label.ID = "academy_Label";
academy_Label.Text = "学术水平";
///---添加控件
this.Panel1.Controls.Add(academy_Label);
添加控件后,取出动态添加的控件的值。比如这里,取出动态添加的label的值:
string descriptionStr = (this.FindControl("academy_Label") as Label).Text;
然而这样行不通, 会提示出错。信息如下:
就是这样...............................
我的page_load函数中是也用到了:
if(!IsPostBack)
{
}
------------------------我的分析
1,可能我动态生成的控件类型不是服务器控件,无法使用获取服务器空间的方法获取控件的值。
2,获取控件的值的方法可能不正确。
3,每次刷新当前页面的时候,页面上的数据将被重构以此,或许我没有重写 类似 OnInit() 函数。
然而我并没有继续追其原因。从设计到编码,我做了好久呢,而且还是晚上, 第二天爬起来做测试,发现昨晚的方法行不通。好恼人。心情烦躁:因为明天就要上交了。
---------------------总结
虽然没有弄完,但是还是有收获的。
1,添加空格
///---添加空格
this.Panel1.Controls.Add(new LiteralControl(" "));
2,添加换行
this.Controls.Add(new LiteralControl("<br />"));
--------------------参考
1,https://msdn.microsoft.com/zh-cn/library/ms178207(v=vs.100).aspx
2,https://msdn.microsoft.com/zh-cn/library/0e39s2ck(v=vs.100).aspx
3,https://msdn.microsoft.com/zh-cn/library/kyt0fzt1(v=vs.100).aspx