- 浏览: 56643 次
最新评论
大多数情况下,我们在制作asp.net页面的时候,都是使用静态的形式将web服务器控件添加到页面中的,这种方法能满足大部分的需要。在本文中,我们主要讨论如何在web页面中动态生成控件并添加到指定位置,然后设置控件的相关属性,触发相关的事件。
本程序中,我们打算在页面上动态生成三个控件,一个表格,一个文本框,一个标签。当文本框失去焦点时,标签将显示文本框中的内容;程序运行的时候,文本框中有一段提示文字(“输入结束后请按tab键”),当鼠标经过该文本框时,自动清除提示文字。以上是本程序的功能介绍。
下面讲解详细的操作过程:
1、 新建一个aspx页,名字任意取好了。
2、 切换到html视图,添加一个两行一列的表格,因为.net中画表格极不方便,所以我都是在frontpage中画好表格再把代码粘贴过来的。
3、 在表格的第一行和第二格各放一个placeholder控件,并采用默认名称。该控件在工具箱的web窗体选项卡中可以找到,placeholder web 服务器控件使您可以将空容器控件放置到页内,然后在运行时动态添加、移除或依次通过子元素。该控件只呈现其子元素。
4、 不多说了,所有源码贴出来,我作了比较详细的注释:
using system; using system.collections; using system.componentmodel; using system.data; using system.drawing; using system.web; using system.web.sessionstate; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.htmlcontrols; namespace teachshow.test { /// <summary> /// webform1 的摘要说明。 /// </summary> public class webform1 : system.web.ui.page { protected system.web.ui.webcontrols.placeholder placeholder1; protected system.web.ui.webcontrols.placeholder placeholder2; private label label=new label(); private textbox textbox=new textbox(); private void page_load(object sender, system.eventargs e) { // 在此处放置用户代码以初始化页面 table tb = new table();//创建一个表格 tb.borderwidth=unit.parse("1"); tb.width = unit.parse("100%"); for (int j=0;j<10;j++) { tablerow tr = new tablerow();//创建一行 tablecell cell1 = new tablecell();//创建单元格,也就是第一列 cell1.text=j.tostring();//设置单元格内的文本 tr.cells.add(cell1);//添加到行中 tablecell cell2 = new tablecell();//创建第二列 cell2.text=(j*j).tostring(); tr.cells.add(cell2); tb.rows.add(tr);//添加到表格中 } this.placeholder2.controls.add(tb); ///////////////////////////////////////// textbox.text="输入结束后请按tab键";//程序运行时文本框内的提示文本 textbox.id="t";//给文本框起个名字 textbox.width=200;//设置宽度 textbox.height=20;//设置高度 textbox.autopostback=true;//响应事件的条件 textbox.textchanged+=new eventhandler(textbox_textchanged);//添加事件,在.net中,按tab自动生成 textbox.attributes.add("onmouseover","t.value=''");//给文本框添加一个javascript事件,当鼠标从文本框中移过时自动清除文本框内的提示内容 this.placeholder1.controls.add(textbox);//添加 //////////////////////////////////////// this.placeholder1.controls.add(label);//此处将标签添加到placeholder中 } #region web 窗体设计器生成的代码 override protected void oninit(eventargs e) { // // codegen: 该调用是 asp.net web 窗体设计器所必需的。 // initializecomponent(); base.oninit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void initializecomponent() { this.load += new system.eventhandler(this.page_load); } #endregion private void textbox_textchanged(object sender, eventargs e) { this.label.text=textbox.text;//事件响应方法.当文本框失去焦点时将标签设成和文本框同样的内容. } } }
本文转自:http://www.360doc.com/content/12/0313/09/3767901_193921819.shtml
发表评论
-
网页flv播放器JW FLV PLAYER 说明(转)
2012-07-11 17:59 1027JW FLV PLAYER 在线FLV播放器中文使用说明 2 ... -
安装VisualSVN Server过程中出现错误,无法启动VisualSVN服务
2012-06-08 14:26 1556安装VisualSVN Server过程中出现错误,无 ... -
SVN服务器搭建和使用(三)
2012-06-07 17:10 869SVN服务器搭建和使用( ... -
SVN服务器搭建和使用(二)
2012-06-07 17:10 912SVN服务器搭建和使用(二) 上一篇介绍了Vi ... -
SVN服务器搭建和使用(一)
2012-06-07 17:09 1081SVN服务器搭建和使用(一) Subversio ... -
在.net的绑定事件中使用if控制语句
2012-05-22 10:53 2065做项目中经常会遇到的一个问题,在Repeater中绑定了某个数 ... -
asp.net 2.0 treeview点击相应的父节点文本展开子节点而不是点前面的加号才能打开
2012-05-14 12:04 3453在要点击展开的父节点上设置:SelectAction为Expa ... -
ASP.NET获取当前时间
2012-05-07 10:31 2937在c# / ASP.net中我们可以 ... -
让iframe的height=100%在IE7、8中正常显示
2012-04-17 22:33 1654具体原因不明,在载入的时候改变他的高度为用户区的高度即可,在i ... -
JS确定取消控制是否删除的方法
2012-04-12 15:32 1122<script language="jav ... -
JS与Asp.Net的相互取值
2012-04-12 14:58 2722JS中取得Asp.Net的值 (1)取得服务端控件的值 va ... -
js数组操作大全(转)
2012-04-12 14:52 24937shift:删除原数组第一项,并返回删除元素的值;如果数组为空 ... -
使用JS相应事件以及动态创建对象控件
2012-04-10 18:09 3195今天做项目的时候遇到一个比较纠结的问题,在后台上传图片的时候, ... -
在Repeater 中绑定 DropDownList
2012-03-29 17:00 1126理论上下面这段代码可行的,结果却怎么也显示不出来,找了半天,发 ... -
点击repeater里面的按钮获取本行里面其他列中的数据
2012-03-29 14:33 3822今天在做一个 后台列表修改的功能时遇到一个问题。 我要实现的功 ... -
c#动态生成文字图片解决方案
2012-03-28 09:06 1038今天网上看到一篇文章,可以动态生成文字图片的,还没验证过,先记 ... -
.net弹出对话框
2012-03-27 13:07 936今天在网上看到一篇.net弹出对话框的文章,感觉这个类不错,记 ... -
直接使用VS2008中的SQL2005
2012-03-27 09:31 1071这两天公司换了台电脑,装了VS2008后准备装SQL2 ...
相关推荐
在ASP.NET开发中,动态生成控件是一种常见的技术,它允许开发者在运行时根据需要创建、修改或删除页面上的用户界面元素。这种技术对于构建高度交互性和灵活性的应用程序尤其有用,比如在线表单、购物车或者任何需要...
在ASP.NET中,动态添加和删除控件是一项关键技能,特别是在构建高度交互和自定义的Web应用程序时。本文将深入探讨如何在VS.NET 2008环境下利用ASP.NET技术来实现这一功能。 首先,我们需要了解ASP.NET页面生命周期...
在ASP.NET Web开发中,动态生成控件是一个关键的技术,特别是在构建高度自定义或数据驱动的用户界面时。动态控件允许我们在运行时根据需要创建、添加或删除控件,而不是在设计时硬编码到页面中。这为开发者带来了很...
ASP.NET静态页面生成控件是一种高效的技术,用于将动态网页转换为静态HTML文件,从而提高网站性能,增强搜索引擎优化(SEO)效果,并减轻服务器处理负载。这种控件的使用非常简便,无需复杂的配置,只需两个步骤就能...
在ASP.NET中,C#是一种常用的编程语言,用于构建动态Web应用程序。动态生成控件是ASP.NET中的一个重要特性,它允许开发者根据用户需求或者后台数据动态地创建和添加控件到网页上。这个过程通常涉及从数据库获取数据...
5. 保存视图状态:在`Page_Init`事件中动态添加控件,以确保控件在回发时能够被正确恢复。 6. 重新创建控件:在`Page_Load`事件中,检查是否为回发(`if (!IsPostBack)`),如果是,则需要重新创建并添加所有动态...
ASP.NET控件是微软.NET Framework框架中用于构建Web应用程序的核心元素。这些控件提供了一种简单的方法来构建交互式、动态的网页。本笔记将深入探讨ASP.NET控件的各个方面,帮助开发者更好地理解和使用这些工具。 ...
下面将详细解释如何在ASP.NET中创建一个自定义的随机验证码控件,并探讨相关的编程技术。 验证码(CAPTCHA)的主要目的是区分人与机器,它通常由一串随机字符组成,这些字符可能是数字、字母或者两者的组合,有时会...
在提供的压缩包"Koko_ASP.NET初级_GridView控件和FormView控件"中,你可能找到一个示例项目,展示了如何在实际开发中使用这两种控件。通过研究这个例子,你可以学习如何设置控件属性,编写事件处理程序,以及如何在...
- Web 控件是ASP.NET特有的,它们提供了更丰富的功能和内置的回传机制,但代价是可能会占用更多的服务器资源。Web 控件通常会自动生成额外的HTML和JavaScript代码来支持回传和状态管理。 - HTML 控件则是基于标准...
在描述中提到的`xLoadTree`是一种专门用于在ASP.NET环境中生成动态树的控件,它的设计目标是减轻服务器的压力,避免一次性加载所有节点。通常,动态加载意味着只有在用户展开特定节点时,才会请求该节点及其子节点的...
ASP.NET 是微软开发的一款用于构建Web应用程序的框架,它提供了丰富的功能和组件,使得开发者能够高效地构建动态网站和Web应用。在ASP.NET中,验证是确保用户输入数据正确性和安全性的关键步骤。为了简化这一过程,...
在Web开发领域,特别是使用ASP.NET框架时,理解不同类型的控件及其功能对于构建高效、响应式的Web应用程序至关重要。本文将深入探讨ASP.NET服务端控件、HTML控件以及HTML服务端控件之间的区别,帮助开发者更好地选择...
综上所述,这个压缩包的内容着重介绍了如何在ASP.NET中利用TreeView控件,结合动态生成和无限级的概念,创建一个能够根据数据源灵活扩展的树形视图。在实践中,开发者需要理解数据绑定、递归、事件处理和性能优化等...
在Asp.net开发中,验证码控件是一种常用的安全机制,用于防止自动机器人或者恶意脚本进行非法操作,如批量注册、频繁提交表单等。它通常要求用户输入图像上显示的一串随机字符,以此来验证用户是真实的人而不是程序...
ASP.NET Web打印控件是.NET框架中用于在Web应用程序中实现打印功能的一种工具。它使得开发者无需深入了解打印机制,就能方便地为用户创建打印页面或文档。本文将深入探讨ASP.NET Web打印控件的核心概念、功能特性...
除了传统的服务器端脚本方式外,ASP.NET还引入了Web控件的概念,使开发者能够像使用桌面应用程序中的控件一样轻松创建和使用Web界面元素。 #### Web控件类型 ASP.NET支持两种类型的Web控件:一种是以.ascx为扩展名...
在`WEB控件库`这个项目中,你可能会找到一个已经实现的抽屉控件示例。这个库可能包含了抽屉控件的C#代码文件(如`DrawerControl.cs`)、对应的CSS样式文件(如`drawer.css`)以及可能的JavaScript辅助文件(如`...