知识大全 怎样在ASP.NET中创建用户控件

Posted

篇首语:时间仿似一条直线,没有起点,亦无终点。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 怎样在ASP.NET中创建用户控件相关的知识,希望对你有一定的参考价值。

怎样在ASP.NET中创建用户控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本文介绍如何在ASP NET中创建用户控件 控件属性的动态修改以及控件的事件出发机制

  简介

  ASP NET的服务端控件使得Web开发工作变得更为简单 功能更为强大 我们介绍过如何在ASP NET页面中使用服务端控件 但是 如果服务端没有所要求的控件时该怎么办呢?

  当然 ASP NET不会给你变出一个莫须有的控件 事实上 可以动手作自己的控件来取代 NET提供的控件 这种控件就是用户控件 也正是本文讨论的话题

  编写第一个用户控件

  有人认为 知道如何使用服务端控件可不一定说明编写用户控件是件容易的事

  事实上 编写一个基本用户控件(有时也称之为pagelets)并让ASP NET页面象使用服务端控件那样使用这些控件的确是件简单的事 这里有一个简单示例

  basic ascx

  <p>

  This is a user control…… really!

  </p>

  这就是一个用户控件!看到这里 我想你会说我该不是喝醉了 头脑不清楚吧 但这段代码的确就是易于被使用的一个用户控件 尽管这个控件没有作什么事 却是关于什么是用户控件的一个很好说明 事情并不象想像得那么复杂 注意后缀 ascx 它告诉网页这是一个用户控件 它没有什么特别含义 只是不让IIS去直接执行这段代码

  现在我们来创建一个用户控件 看下面的例子

  basic aspx

  <%@ Page Language= VB %>

  <%@ Register TagPrefix= asp samps TagName= SomeText

  Src= basic ascx %>

  <>

  <head>

  <title>ASP NET User Control Sample Basic</title>

  </head>

  <body bgcolor= #FFFFFF >

  <asp samps SomeText runat= server />

  </body>

  </>

  这段代码输出标准HTML页面 显示用户控件里的文字而不是标记

  那么它是怎么实现的呢?关键就在注册(Register)说明 要注册控件 先要定义三个属性

  TagPrefix

  定义控件位置的命名空间 有了命名空间制约 就可以在同一个网页里使用不同功能的同名控件

  TagName

  指向所使用控件的名字 在同一个命名空间里的控件名是唯一的 控件名一般都表明控件的功能

  Src

  指向控件的资源文件 资源文件使用虚路径( control ascx 或 /path/control ascx ) 不能使用物理路径( C pathcontrol ascx )

  控件注册之后 就可以象其它服务端控件一样被使用 通过定义目标前缀(TagPrefix)和目标名(TagName) 就可以象使用服务端内建控件一样地进行使用 同时也确定了使用服务端运行(runat= server )方式 下面是网页调用用户控件的基本方式

  <TagPrefix TagName runat= server />

  给用户控件增加属性并赋值

  下面我给控件加上两个属性 一个是color 另一个是text

  properties ascx

  <script language= VB runat= server >

  Public Color As String = black

  Public Text As String = This is a user control…… really!

  </script>

  <p>

  <font color= <%= Color %> >

  <%= Text %>

  </font>

  </p>

  这样就可以使用和改变控件的色彩和文字了 可以在初始化时赋值 还可以动态地修改这二个属性

  在同一个网页里可以重复调用这个控件并使用不同的属性值

  properties aspx

  <%@ Page Language= VB %>

  <%@ Register TagPrefix= asp samps TagName= SomeText

  Src= properties ascx %>

  <script language= VB runat= server >

  Sub Page_Load(Sender As Object E As EventArgs)

  UserCtrl Color = green

  UserCtrl Text = This control s properties were _

  & set programmatically!

  End Sub

  </script>

  <>

  <head>

  <title>ASP NET User Control Sample Properties</title>

  </head>

  <body bgcolor= #FFFFFF >

  <asp samps SomeText runat= server />

  <asp samps SomeText Color= red runat= server />

  <asp samps SomeText Text= This is quite cool! runat= server />

  <asp samps SomeText Color= blue Text= Ain t It? runat= server />

  <asp samps SomeText id= UserCtrl runat= server />

  </body>

  </>

  还想再好些 用户控件是否能够有事件句柄呢?

  用户控件几乎可以作任何事 下面的代码示范控件如何触发Page_Load事件 有了事件句柄 就不用多写其它的维护代码来控制控件的运行 控件可以自己触发事件

  在下面的代码中 封装了一个ASP的textbox控件 我将我的控件名属性与textbox的内容挂钩

  events ascx

  <script language= VB runat= server >

  Sub Page_Load(Src As Object E As EventArgs)

  Dim strInitialText As String = Please Enter a Name!

  If Page IsPostBack Then

  If txtName Text = strInitialText

  txtName Text =

  End If

  Else

  txtName Text = strInitialText

  End If

  End Sub

  Public Property Name As String

  Get

  Return txtName Text

  End Get

  Set

  txtName Text = Value

  End Set

  End Property

  </script>

  Name <asp textbox id= txtName runat= server />

  <asp RequiredFieldValidator ControlToValidate= txtName

  id= valtxtName Display= Dynamic runat=server>

  Please Enter a Name!

  </asp RequiredFieldValidator>

  events aspx

  <%@ Page Language= VB ClientTarget= downlevel %>

  <%@ Register TagPrefix= asp samps TagName= SomeText

  Src= properties ascx %>

  <%@ Register TagPrefix= asp samps TagName= TextBox

  Src= events ascx %>

  <script language= VB runat= server >

  Sub Page_Load(Sender As Object E As EventArgs)

  txtLabel Text =

   The textbox control handles it s own stuff

   in it s own Page_Load event handler

  End Sub

  Sub btnSubmit_Click(Sender As Object E As EventArgs)

   Sets the label to the textbox s text

  txtLabel Text = txtName Name

   I don t need to worry about validation since

   my user control does it for me

  End Sub

  </script>

  <>

  <head>

  <title>ASP NET User Control Sample Validation & Events</title>

  </head>

  <body bgcolor= #FFFFFF >

  <form runat= server >

  <asp samps TextBox id= txtName runat= server />

  <asp button id= btnSubmit onClick= btnSubmit_Click

  text= Submit runat= server />

  </form>

  <asp samps SomeText id= txtLabel runat= server />

  </body>

  </>

cha138/Article/program/ASP/201311/21676

相关参考

知识大全 在ASP.NET中创建安全的web站点[1]

在ASP.NET中创建安全的web站点[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前

知识大全 在ASP.NET中创建安全的web站点[2]

在ASP.NET中创建安全的web站点[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  好了

知识大全 在ASP.NET中创建安全的web站点[4]

在ASP.NET中创建安全的web站点[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!界面做好

知识大全 ASP.NET2.0中创建自定义配置

ASP.NET2.0中创建自定义配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在ASPNE

知识大全 Asp.net中创建Auto Complete Text Box&n

Asp.net中创建AutoCompleteTextBox&n  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 在VB.Net中创建使用控件数组

在VB.Net中创建使用控件数组  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一首先创建一个But

知识大全 [ASP.NET开发系列]在用户控件中添加事件

[ASP.NET开发系列]在用户控件中添加事件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在

知识大全 ASP.NET用户控件操作ASPX页面

ASP.NET用户控件操作ASPX页面  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一简单实例

知识大全 Asp.net 用户控件添加自定义事件

Asp.net用户控件添加自定义事件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 使用ASP.NET中的用户控件[2]

使用ASP.NET中的用户控件[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n