当前位置:  编程技术>.net/c#/asp.net

学习asp.net动态添加控件的方法

    来源: 互联网  发布时间:2014-08-30

    本文导语:  有这样一个问题: 3个DropDownList和1个按钮,每次单击按钮动态创建3个Label控件并从DropDownList获得值,然后添加到页面。 第一次单击页面中有3个Label,第二次单击有6个,第三次单击有9个,也就是每次单击要在上次的状态下再添...

有这样一个问题:
3个DropDownList和1个按钮,每次单击按钮动态创建3个Label控件并从DropDownList获得值,然后添加到页面。
第一次单击页面中有3个Label,第二次单击有6个,第三次单击有9个,也就是每次单击要在上次的状态下再添加3个。
谁的小脑袋这么聪明呢,居然在控件上做这么大的文章,哈哈。

下面说说俺的想法,可以通过Session来保存上次的状态。
一种解法如下:
1、Test.aspx关键代码:
 

代码示例:


1
2
3


a
b
c


A
B





2、Test.aspx.cs关键代码:
 

代码示例:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Panel1"] != null)
{
int index = this.Form.Controls.IndexOf(Panel1);
this.Form.Controls.RemoveAt(index);
Panel1 = Session["Panel1"] as Panel;
this.Form.Controls.AddAt(index, Panel1);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 3; i++)
{
Label label = new Label();
DropDownList ddl = this.FindControl("DropDownList" + (i + 1).ToString()) as DropDownList;
label.Text = ddl.SelectedValue;
Panel1.Controls.Add(label);
}
Literal br = new Literal();
br.Text = "
";
Panel1.Controls.Add(br);
Session["Panel1"] = Panel1;
}

说明:
页面回发时,先记下Panel1在控件树中的位置,并移除它,然后从Session变量获取上次添加后的Panel1,并添加到控件树中原来的位置,在这基础上继续添加新的Label控件。
最后的Button是用来测试的,可以帮助查看添加的位置是否正确,也可以用于检测空回发时是否能维持上次的状态。

关于如何在asp.net中动态添加控件的问题,就会大家介绍到这。
脚本学堂,专心为您每一天。


    
 
 

您可能感兴趣的文章:

  • asp.net MVC进阶学习---HtmlHelper之GridView控件拓展(一)
  • asp.net MVC进阶学习---HtmlHelper控件解析(四)
  • asp.net MVC进阶学习---HtmlHelper控件解析(五)
  • asp.net MVC进阶学习---HtmlHelper控件解析(三)
  • asp.net MVC进阶学习---HtmlHelper控件解析(一)
  • asp.net MVC进阶学习---HtmlHelper控件解析(二)
  • asp.net MVC进阶学习---HtmlHelper之GridView控件拓展(五)
  • asp.net MVC进阶学习---HtmlHelper之GridView控件拓展(二)
  • C#中定时器控件Timer学习参考
  • asp.net MVC进阶学习---HtmlHelper之GridView控件拓展(四)
  • asp.net MVC进阶学习---HtmlHelper之GridView控件拓展(三)
  • Eclipse添加xml文件提示及Hibernate配置学习
  • ORACLE学习笔记-添加更新数据函数篇
  • c# listbox添加双击事件的实例学习
  • Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我准备学习Java,重点在J2EE,高分向大家讨教学习的思路和方法!!!
  • 初学者求教Lynux的学习方法
  • 请教学习JAVA的最佳方法?以免走弯路
  • 请教学习Linux的快速上手的方法?
  • 加入linux,学习流程和方法问题,请指点
  • linux学习方法
  • 嵌入式学习方法
  • 学习linux有什么好的方法?
  • oracle iis7站长之家
  • GridBagLayout好繁啊,有没有好的方法学习?
  • 高分求linux最佳,最快学习方法,以及好的书籍和资料?
  • 请教linux下网络编程学习方法
  • C#学习笔记之C#的虚方法
  • 我的专业是网络技术,对TCP/IP有一定的了解但不精,想要学习linux下的网络编程,请大家推荐学习方法和优秀的书籍
  • 请教学习linux的方法
  • 大家一起来谈谈学习嵌入式的过程,方法和心得
  • 请大家指教一下 Linux 的学习方法和相关的书籍!!!
  • 给我一些学习浙大出版的《linux内核源代码情景分析》的方法建议
  • 求救学习方法。(100分)
  • 请高手帮助指导一下学习JAVA的方法与经典书籍
  • PHP介绍及学习网站推荐
  • 想深入学习Java应该学习哪些东西
  • 准备学习docker: docker version命令查看版本
  • 新手提问:学习c++同时也想学习unix和linux
  • HTML 学习总结及下一步学习教程推荐
  • 学习c后,学习pb,大家提点建议,谢谢哦
  • OpenStack相关学习资料搜集
  • 有最近开始学习Minix的吗?一起来学习吧
  • juqery的python实现:pyquery学习使用教程
  • 我想问问哪里有AIX下啊!~版本越新越好!~我想拿来学习学习
  • 想找共同学习Linux的新手,一起学习,共同成长


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3