炫浪网首页 | 加入收藏夹 登录 | 注册
logo
网站导航: 炫浪首页游戏频道女性风采科技学院精品素材桌面壁纸BT影视网络社区健康生活
热门栏目: 炫友贴图编程开发硬件学堂博客空间游戏攻略游戏资源时尚女性美容护肤教程下载
炫浪(科技.学院)
 | 网站首页 | 系统软件 | 图形图像 | 编程开发 | 网络应用 | 硬件学堂 | 办公应用 | 〖图书馆〗 | 
  您现在的位置: 炫浪学院 >> 编程开发 >> 网页制作 >> Asp.net >> 正文

怎样在ASP.NET中创建用户控件

炫浪 科技.学院 时间:2007-12-11 16:47:59 来源:炫浪 发表评论 社区讨论

 本文介绍如何在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="asp101samps" TagName="SomeText"

  Src="basic.ascx" %>

  <html>

  <head>

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

  </head>

  <body bgcolor="#FFFFFF">

  <asp101samps:SomeText runat="server" />

  </body>

  </html>

  这段代码输出标准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="asp101samps" TagName="SomeText"

  Src="properties.ascx" %>

  <script language="VB" runat="server">

  Sub Page_Load(Sender As Object, E As EventArgs)

  UserCtrl1.Color = "green"

  UserCtrl1.Text = "This control's properties were " _

  & "set programmatically!"

  End Sub

  </script>

  <html>

  <head>

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

  </head>

  <body bgcolor="#FFFFFF">

  <asp101samps:SomeText runat="serve

[1] [2] 下一页

  • 上一篇文章:

  • 下一篇文章:
  • 发 表 评 论
    姓 名: 主 页:
    评 分: 1分 2分 3分 4分 5分
    内 容:
    频 道 推 荐

    优秀程序员的两大要

    信息时代如何成为一

    如何成为一名C++程序

    Java程序员认证模拟

    高级程序员级考试大

    初级程序员级考试大
    最 新 热 门
    相 关 文 章
    新.Net开发必备工具详解之Snippet 
    在DNN 4.X中自定义登录界面
    .net开发:如何为程式码加上行号
    While deploying... 错误的解决办法
    aspx页面作为模板引擎的一种实现
    字符串和十六进制之间的转换方法
    如何使用ASP.Net加密Cookie
    使用ASP.Net中的自定义控件
    Configuration类在网页实现web.con
    ASP.Net MVC框架配置与分析
    相 关 新 贴
    广 告 展 示

    炫浪网 业务、广告:web#xvna.com (请将#换成@) 业务广告QQ 业务广告QQ2
    Copyright @ 2006-2007 All Right Reserved (主域名 xvna.com 粤ICP备07040110号)
    【声明】本网站部分内容属社区网友发布,本网站仅提供网友交流平台,但有权在本网站范围内引用、发布、转载来自论坛网友发布的内容。网友发布内容纯属个人行为,与本网站立场无关。本网站对于论坛网友发布的内容所引发的版权、署名权的异议及纠纷,不承担任何责任。其他媒体转载须事先与原作者和本网站联系。