【Asp.Net】后台生成控件并绑定事件
在Asp.Net的Web页面处理流程中,有时候我们会碰到需要动态生成的控件,并为之绑定相应的事件。
接下来我们来动态的生成一个控件
//在用户代码初始化阶段添加控件
protected void Page_Load(object sender, EventArgs e)
{
//声明控件对象
Button newBtn=new Button();
//指定控件属性
newBtn.ID="btnConrol";
newBtn.Text="我是动态生成的按钮";
newBtn.Click+=new System.EventHandler(this.ShowMessage);
//在Asp.Net中,Asp控件需要放在有runat="server"标记的容器中
form1.Controls.Add(newBtn);
} //方法
private void ShowMessage(object sender, EventArgs e)
{
Response.Write("<script>alert('我被点击啦')</script>");
}
我们在预览一下,可以看到被加进来的控件。

点击按钮会出发初始化绑定的事件

虽然控件已经动态生成,并且能成功绑定事件并触发事件,但是还是有点不理想。我们可以看到,每次动态生成的按钮都被加在了页面的最底部。
这个是由web页面的机制决定,只有在页面被创建成功以后,动态生成的控件才会被加到页面,这就意味着新的控件会被加到页面的最底部。
这个往往不是我们需要的效果,在实际需求中,我们需要在指定位置生成需要的控件。我们希望能更灵活的动态生成按钮,这个也很简单,借助PlaceHolder控件就能够轻松实现。
<body>
<form id="form1" runat="server">
<div>
<div>
<asp:PlaceHolder ID="phTop" runat="server"></asp:PlaceHolder>
</div>
<div>
<asp:Label ID="lblInfo" runat="server" Text=""></asp:Label>
</div>
<div>
<asp:PlaceHolder ID="phMid" runat="server"></asp:PlaceHolder>
</div>
<asp:Button ID="BtnPage" runat="server" Text="页面控件" /> </div>
</form>
</body>
接下来我们在后台动态生成按钮
protected void Page_Load(object sender, EventArgs e)
{
BtnPage.Click += new System.EventHandler(this.ShowMsg); Button topBtn = new Button();
topBtn.ID = "topBtn";
topBtn.Text = "顶部动态添加控件";
topBtn.Click += new System.EventHandler(this.TopShowMsg);
phTop.Controls.Add(topBtn); Button midBtn = new Button();
midBtn.ID = "midBtn";
midBtn.Text = "中间动态添加控件";
midBtn.Click += new System.EventHandler(this.MidShowMsg);
phMid.Controls.Add(midBtn);
}
//页面添加控件事件
private void ShowMsg(object sender, EventArgs e)
{
lblInfo.Text = "固定添加控件";
}
private void TopShowMsg(object sender, EventArgs e)
{
lblInfo.Text = "顶部动态添加控件";
}
private void MidShowMsg(object sender, EventArgs e)
{
lblInfo.Text = "中间动态添加控件";
}
好了,点击生成,然后预览

我们可以看到动态添加的按钮都被我们添加到特定的位置了

点击按钮也可以触发事件
好了,动态生成页面控件的笔记到这里就结束了。
一点基础知识,高手勿喷~
【Asp.Net】后台生成控件并绑定事件的更多相关文章
- Delphi不注册COM直接使用ActiveX控件并绑定事件
文笔不行,直接上源码: 主窗口: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System ...
- 关于原生js中ie的attacheEvent事件用匿名函数改变this指向后,不能用detachEvent删除绑定事件的解决办法?
博客搬迁,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/11/28/%e5%85%b3%e4%ba%8e%e5%8e%9f%e7%94%9fjs%e ...
- Android_安卓为按钮控件绑定事件的五种方式
一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...
- 原生 JS 绑定事件 移除事件
监听事件的绑定与移除主要是addEventListener和removeEventListener的运用. addEventListener语法 element.addEventListener(ty ...
- asp.net 后台多线程异步处理时的 进度条实现一(Ajax+Ashx实现以及封装成控件的实现)
(更新:有的同学说源代码不想看,说明也不想看,只想要一个demo,这边提供一下:http://url.cn/LPT50k (密码:TPHU)) 工作好长时间了,这期间许多功能也写成了不少的控件来使用, ...
- ASP.NET中后台数据和前台控件的绑定
关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...
- Asp.net web form 动态生成控件的注意事项
Asp.net页面生命周期 页面初始化 Page_Init 加载View State LoadViewState 回发数据处理 LoadPostData ...
- asp.net学习之 数据绑定控件--表格绑定控件
原文:asp.net学习之 数据绑定控件--表格绑定控件 数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...
- ASP .NET MVC HtmlHelper扩展——简化“列表控件”的绑定
在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDo ...
随机推荐
- javascript 弹框提示选择
<script type="text/javascript"> window.onload = function () { document.getElementByI ...
- Nginx源码研究七:nginx的location指令分析
在nginx的配置文件nginx.conf中,我们在配置server的时候,会配置一下location指令,这个location指令是提供给用户来配置对于符合指令的http请求,采用该指令内部的处理方 ...
- jquery cookies(2)用法实现
example $.cookie('name', ‘value'); 设置cookie的值,把name变量的值设为value example $.cookie('name', ‘value', {ex ...
- 学c语言做练习之文件
打开两个文件,让程序打印第一个文件的第一行,第二个文件的第一行,第一个文件的第二行,第二个文件的第二行,依此类推,直到打印完行数较多的文件的最后一行. #include<stdio.h> ...
- python的sorted相关
Python 字典排序 在python里,字典是内置的数据类型,是个无序的存储结构,每一个元素是key-value对: 有关key的解释: sorted(L,key=by_name)中的key即by_ ...
- -_-#【事件】keyCode
- sql语句:union
sql语句中,join,left join中,是将两个或多个表横向连接,而有时,我们需要将几个表或1个表纵向连接,甚至是连接自身,就比如,某些数据库脚本特别不合理的时候,但我们又不能说啥 ....郁 ...
- CPP之面向对象篇
引述,物体,对象,物体共性,pre-defined-class=标准库函数; string.a("Ruiy") 成员操作符,操作动作
- Promise in AngularJS
What's promise Angular’s event system provides a lot of power to our Angular apps. One of the most p ...
- ubuntu14.04 安装tar.gz文件
UBUNTU14.04 中tar.gz安装方法 # 是root用的,如果想一直用就要先root设置密码sudo passwd root.$ 一般用户 root@big-System-Product-N ...