ASP.NET用户控件说明和添加事件

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
在WEB开发中经常有一些代码是在很多地方重复出现的,象导航栏、用户登录/注册和首页上面的一些固定栏目等。这些可重用的代码我们可以把它写成一个通用模块供需要的地方来引用,这样做即节省了开发时间还方便以后的维护。
在ASP.NET的web编程中提供了一种叫做“用户控件”可以帮助我们完成这种做法,其文件扩展名是“.ascx”,由于ascx文件是用来插入ASPX页面中使用的,而一个ASPX窗体只能包含一个<form>标志,所以ascx用户控件不能包含<form></form>标志。
 
1、下面使用一个经典入门范例来创建一个简单的用户控件:

Hello.ascx
 <html>
    <body>
      <h1> 经典入门范例</h1> <hr>
      <h3>Hello Word</h3>
    </body>
  </html>
把这段代码保存为Hello.ascx文件,然后在ASPX页面上调用,具体调用如下:

Hello.aspx
<%@Register TagPrefix=”wen” TagName=”Hello” src=”Hello.ascx”%>
<html>
<body>
 <form id=frm runat=server>
   <wen:Hello ID=MyHello runat=server>
 </form>
</body>
</html>
 在IE浏览器的地址里输入 http://localhost/Hello.aspx运行,将在页面上打印出字符串“Hello word”。

                    2)src属性是连接到用户控件的相关的文件名;
         3)<wen:Hello ID=MyHello runat=server>这一句是在ASPX窗体中调用用户控件Hello.ascx的语句。
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
2、以下的演示代码给控件添加属性
下面我们举一个用户登录的文件,把它写成用户控件,在向其中添加UserName和PassWord这两个属性。
向用户控件添加属性很简单,只要在ascx文件中的<script></script>块中定义就行了。   至此,我们已经给UserLogin.ascx文件添加了UserName和PassWord这两个属性了,以下DEMO演示如何在ASPX页面上引用这两个属性。

UserLogin.ascx
<html>
<title>用户登录</title>
<body>
 <table>
    <tr>
      <td>用户名:</td>
      <td><asp:TextBox ID=”txt1” runat=”server”></td>
    </tr>
<tr>
 <td>密  码:</td>
 <td><asp:TextBox ID=”txt2” TextMode=”password” runat=”server”></td>
</tr>
<hr>
<tr>
 <td></td>
 <td><asp:LinkButton Text=”登陆” runat=”server”></td>
</tr>
</table>
</body>
</html>
<script language=”C#” runat=”server”>
 public string UserName{
   get{return txt1.Text;}
   set{txt1.Text=value;}
}
 public string PassWord{
   get{return txt2.Text;}
   set{txt2.Text=value;}
}
</script>

UserLogin.aspx
<%@Register TagPrefix=”wen” TagName=”UserLogin” src=” UserLogin.ascx” %>
<html>
<title>引用属性</title>
<body>
 <form runat=”server”>
    <wen: UserLogin ID=”MyLogin” runat=”server”>
 </form>
  用户名:<asp:Label ID=”Lab1” runat=”server”/><br>
  密  码:<asp:Label ID=”Lab2” runat=”server”/><br>
</body>
</html>
<script language=”C#” runat=”server”>
void Page_Load(Object sender,EventArgs e){
 if(IsPostBack){
    Lab1.Text=MyLogin.UserName;
    Lab2.Text=MyLogin.PassWord;
}
}
</script>

 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
3、以下的演示代码给控件添加事件
在上面我们定义了一个用户登录的用户控件UserLogin.ascx 文件,里面包含了一个LinkButton服务器按钮控件,当用户单击该按钮时服务器端会自动生成一个回发来激发Page.Load事件。除了服务器自动产生回发来激发Page.Load事件外,我们可以给LinkButton添加一个它自己的事件,添加事件其实也很简单,通过在<script></script>块中声明事件,然后把该事件添加到用户控件中。

我们现在通过以下的例子来说明如何在UserLogin.ascx用户控件中添加事件。 

UserLogin.ascx
<html>
<title>用户登录</title>
<body>
 <table>
    <tr>
      <td>用户名:</td>
      <td><asp:TextBox ID=”txt1” runat=”server”></td>
    </tr>
<tr>
 <td>密  码:</td>
 <td><asp:TextBox ID=”txt2” TextMode=”password” runat=”server”></td>
</tr>
<hr>
<tr>
 <td></td>
 <td><asp:LinkButton Text=”登陆” OnClick=”MyOnClick” runat=”server”></td>
</tr>
</table>
</body>
</html>
<script language=”C#” runat=”server”>
 public string UserName{
   get{return txt1.Text;}
   set{txt1.Text=value;}
}
 public string PassWord{
   get{return txt2.Text;}
   set{txt2.Text=value;}
}
public event Eventhandler Login; //添加事件句柄
         
void MyOnClick(Object Sender,EventArgs e){ 
           
 if(Login != null) 
        
        Login(this,new EventArgs()); //激活Login事件
       
}
   
</script>
在ASPX页面中使用自定义事件:

<%@Register TagPrefix=”wen” TagName=”UserEvent” src=” UserLogin.ascx”%>
<html>
<body>
 <form runat=server>
   <wen:UserEvent ID=”MyLogin” OnLogin=”OnLoginPress” runat=”server”>
 </form>
 <asp:Label ID=”Lab1” runat=”server”/><br>
 <asp:Label ID=”Lab2” runat=”server”/><br>
</body>
</html>
<script Language=”C#” runat=”server”>
void OnLoginPress(Object Render, EventArgs e){
 Lab1.Text=MyLogin.UserName;
 Lab2.Text=MyLogin.PassWord;
}
</script>
说明:这里的 OnLogin 事件是我们给用户控件 UserLogin.ascx 文件添加的事件。

 
Jmeter+ant+jenkin接口自动化发邮件 前置环境 Jmeter + ant +Jenkins Jmeter 下载Jmeter 配置环境变量: JMETER_HOME 为 jemter安装路径 PATH为 %JMETER_HOME%\lib PATH为%JMETER_HOME%\bin 下载说明https://www.cnblogs.com/wxh04/p/7754156.html 验证是否成功命令行输入: jmeter -v 出现版本号则为成功: JDK 下载jdk安装包 让自动下载到c盘不要乱按 配置环境变量 JAVA_HOME :为安装jd 阅读详情

相关推荐

asp.net 自定义用户控件 事件

asp.net 自定义用户控件 事件,需要的下吧。

asp.net用户控件增加事件属性

意图是这样的: 管理页面中,总会有一些新增啊,删除啊,修改啊之类的按钮,为了方便,我想做个用户控件; 这个用户控件,里面有三个按钮,新增、修改、删除;这个用户控件要在多个页面上出现,当然,修改与删除的对像也不相同;所以,这个用户控件,在不同的页面中,这三个按钮会使用不同的事件; (如果只是加事件,直接双击按钮就可以加了) 用户控件的代码&lt;%@ Control Language="C#...

web开发自学 329

asp.net无刷新操作表格(增加,删除行),包括后台如何取值

asp.net无刷新操作表格(增加,删除行),包括后台如何取值 //插入空白行 function insertRow(){ var table=document.getElementById('TestTable'); var tr=table.insertRow(); var datalength=table.rows.length-1; var dataIndex=datalength-1; var TextIDCell=tr.insertCell(); TextIDCell.innerHTML=""; //增加按钮 var BtAddCell=tr.insertCell(); BtAddCell.innerHTML=" "; //删除按钮 var BtDeleteCell=tr.insertCell(); BtDeleteCell.innerHTML=" "; setButtonAction(); }

ASP.NET用户控件事件的定义实践--C#里的委托事件实现Observer

一、委托的简介 1、委托的声明:                delegate HandlerName ([parameters]) 例如:               public delegate void PrintHandler(string str);              委托声明定义了一种类型,它用一组特定的参数以及返回类型来封装方法。对于静态方法,委托对象封装要调用的方法

stonezhuzisgu的专栏 1699

asp.net中的Web用户控件添加属性事件

在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程。它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的实现了对数据库的访问,就当时来说,这是一项多么吸引人的技术,包括现在Internet上的许多web站点都是用Asp写的。随着技术发展,Microsoft提出了第二代编程模型――Web窗体。

5133

ASP.NET用户控件操作ASPX页面(在ASPX页面捕捉用户控件事件

一、简单实例 先来个简单点的,首先新建一个 “web用户控件”WebUserControl1.ascx, 在页面上添加一个按钮,并响应Click事件: 然后编写后台代码: //定义一个不含数据的事件处理方法 public event EventHandler Click; protected void Button1_Clic

冰风On The Way 5552

网页自动发邮件的方法

我做了个网站,客户填写一个表单后网页要实现两个功能:1往数据库中插入数据。2给指定邮箱发一封E—mail。应该如何实现?我只能实现其中的一种功能,form的提交事件如果是插入数据,就不能发mail,如果是sendmail。asp,就不能插入数据,我改怎么办呢?

diamond9393的专栏 1729

Python脚本自动定时查询预约余额并发送可预约的邮件提示

  本文介绍基于Python语言,自动、定时监测某体检预约网站中指定日期的体检余额,并在有体检余额时自动给自己发送邮件提醒的方法。   来到春招末期,很多单位进入了体检流程。其中,银行(尤其是四大行)喜欢“海检”,即差额体检——收到体检不代表录取的那种;而正巧我春招主要报名的就是银行、国企等,所以单是这周就有4家单位发了体...

weixin_36730440的博客 231

Shell脚本网站监控预警!自动化运维脚本!!!_shell 脚本 监控动态网页

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

2401_85195615的博客 604

Python自动发邮件

思路: python发邮件需要掌握两个模块的用法,smtplibemail,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。 smtplib模块主要负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。 email模块主要负责构造邮件:指的是邮箱页面显示的一...

Wayne0926的博客 258

sql自动发邮件功能

用SQL自动发邮件需要三步 1,做一个配置文件 2,调用存储过程msdb.dbo.sp_send_dbmail 3, 创建作业1, 右键->【配置数据库邮件】 配置好了之后可以测试能否发送邮件 进去邮箱查看是否收到邮件或者数据库查询 select * from msdb.dbo.sysmail_allitems 2,接下来就编写发送邮件代码EXEC msdb.dbo.sp_send

灵感来自小西装 1万+

java selenium div内嵌滚动条 网页长截图发邮件

java selenium 网页内嵌滚动条截图发邮件主要问题下面展开说感谢大佬 由于公司要求做一个接口,请求这个接口进行网页截图并发送邮件的功能,本来前期是用python写好了,but似乎不太符合要求,那么就用java来重新写一遍,虽然我是java菜鸡,但这并不影响 我修修补补,ctrl c ctrl v嘛。 主要问题 此需求很简单,主要就是对网页的截图。 如果网页是自带了 浏览器的滚动条,那么...

cagezxy的博客 3471

python发邮件实例_python自动发邮件总结及实例说明

python发邮件需要掌握两个模块的用法,smtplibemail,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。smtplib模块主要负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮件(有发件人,收信人,邮件内容)。email模块主要负责构造邮件:指的是邮箱页面显示的一些构造,如发件人,收件人,主...

weixin_39821378的博客 113

python自动发邮件总结及实例说明

文章来源:https://www.cnblogs.com/yufeihlf/p/5726619.html python发邮件需要掌握两个模块的用法,smtplibemail,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。 smtplib模块主要负责发送邮件:是一个发送邮件的动作,连接邮箱服务器,登录邮箱,发送邮...

weixin_30588907的博客 112

【Python】练习_根据爬取网页的结果发邮件

背景:某网站定期发布通知,但不确定具体什么时间,简单爬取网页信息后,根绝结果,如果有符合条件的,发邮件告知。

weixin_39407597的博客 753

python qq群自动加入_Python实现向QQ群成员自动发邮件的方法

Python实现向QQ群成员自动发邮件的方法发布于 2014-12-24 08:37:54 | 249 次阅读 | 评论: 0 | 来源: 网友投递Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富强大的类库。它常被昵称为胶水语言,它能够把用其他语...

weixin_39687786的博客 267

实现自动发邮件功能

在实际的项目中,当脚本执行完毕,生成测试报告,我们需要把报告通过邮件发送到对应的测试人员开发人员,下面学习下在Python中如何实现邮件发送功能,在Python中提供了smtplib模块来发送邮件,导入smtplib,通过help函数可以查看smtp提供的方法。 在学习发邮件的过程中,只需要掌握两个模块的用法即可,smtplibemail,smtplib模块负责发送邮件(连接邮箱服务器,登录...

weixin_30565327的博客 661

Python 实现网页截屏、查库、发邮件

本文介绍了使用 Python(2.7版本)实现网页截屏、查库、发邮件的 demo。用到了 selenium、phantomjs、mailer、jinja2、mysqldb 还有 image,都是比较典型的用法,可复用性比较强。 代码 本 demo 是用于发周报邮件的,周报内容包括数据库中的记录以及网页指定元素的截屏。linux 中可以用 crontab 每周定时发送。需要发类似周报的同学这下...

weixin_30248399的博客 460
上一篇: .Net中把图片等文件放入DLL中,并在程序中引用
下一篇: ASP.NET中上传并读取Excel文件数据
jackeyabc
博客等级 码龄20年 71粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值