自定义asp.net控件分析(二)

上一篇分析了自定义控件的基本语法。这次编写一控件来作为实例。

在asp.net中当你想对button的click事件做确认操作,但Button按钮不能满足此要求。就针对此要求来编写自己的控件。

======================================================================

继承:System.Web.UI.WebControls.Button

控件功能:弹出确认消息框

控件属性:message(消息框中显示的信息)

控件方法:不需要

控件事件:不需要

使用方法:“确定”执行按钮的button_click事件,“取消”不执行任何事件。

======================================================================

Imports System.ComponentModel

Imports System.Web.UI

Namespace WebControls

    <DefaultProperty("Text"), ToolboxData("<{0}:ConfirmButton runat=server></{0}:ConfirmButton>")> Public Class ConfirmButton

         '继承button

        Inherits System.Web.UI.WebControls.Button

        '为其所包含的任何服务器控件提供唯一的命名空间

        Implements INamingContainer

        Dim _Message As String

        '定义message属性。

        <Bindable(True), Category("Appearance"), DefaultValue("")> Property [Message]() As String

            Get

                Return _Message

            End Get

            Set(ByVal Value As String)

                _Message = Value

            End Set

        End Property

        Public Sub New()

            _Message = ""

        End Sub

'重写控件的输出

        Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)

           '为控件增加客户端onclick事件。

            If Me.Message.Trim <> "" Then Me.Attributes.Add("onClick", "jscript:if(!confirm('" & Me.Message & "')) return false;")

            Me.Attributes.Add("onFocus", "jscript:this.blur();")

            MyBase.Render(output)

        End Sub

    End Class

End Namespace

到此,控件就编写完了,你看是不是很简单。

http://vip.6to23.com/moon15/controls/confirmbuttons.rar下载地址。

时间: 2025-01-02 12:10:42

自定义asp.net控件分析(二)的相关文章

asp.net控件开发(二) 简单属性

我们开发出来的控件一般都需要跟使用控件的人编程人员交互,其中交互有两个途径:一个是属性还有就是事件.属性可能是简单的类型如:int.string等并不太复杂的类型,也有比较复杂的类型如:集合. 一.属性实现交互 我们还是沿用上面的例子来添加属性 PicShow示例: public class PicShow : Control { private string _imgUrl; //属性 public virtual string ImgUrl { get { return this._imgU

非常ASP.NET: 使用ASP.NET控件封装Silverlight

世界上许多 ASP.NET 开发人员都想知道如何将 SilverlightTM 整合到其应用程序中,以及整合到其应用程序的什么位置.显然,回答该问题并不是那么容易,因为可以采用的方法多种多样.您可以将整个页面作为一个 Silverlight 控件并在此页面上执行任何操作,也可以在页面上确定 Silverlight 作用到的部分,并在更能体现许多 UI 元素作用的地方集成这些 UI 元素,您更有可能采取后一种方法. 有时将后一种方法称为在页面上"添加丰富多彩的岛屿".而有了 Silver

【Silverlight】Bing Maps开发应用与技巧二:自定义图钉标注控件和动态ToolPa

[Silverlight]Bing Maps开发应用与技巧二:自定义图钉标注控件和动态ToolPanel 在Bing Maps Silverlight Control中以及为我们提供了地图图钉控件Pushpin,我曾经在<使用图钉层(Pushpin layer)及地图图层(MapLayer)>一文中介绍过他的使用方法,本篇主要介绍如何自定义图钉标注控件以及对他的一些扩展,比如实现图钉的动态ToolPanel. 关于图钉的UI外观的设计这里就不详细介绍了,通过Blend可以快速的构建UI界面.首

ASP.net控件开发系列之二

"生死有序" "装装孙子" 上篇文章<开篇>说了不少空洞的理论,这篇文章我还是先说说"大而化之"的东西:1.ASP.net控件(包括页面本身)的生命期的细节:2.如何开始一个控件的编写. "生死有序" ASP.net处理程序在接收到一个用户的页面请求后,它是如何变戏法把一个鲜活的页面呈现给客户端的呢?它都做了哪些事?按什么顺序做的? 要说明这个问题,我们首先要明白,一个页面它本身也是一个Control.从设计模式的

分析10个ASP.NET控件最有用的属性详解_实用技巧

1.ClientIDMode 渲染ASP.NET控件时会自动生成一个ID,当我们在客户端脚本中引用它们时,却会制造不少麻烦,虽然它是命名容器和ID的简单串联,但仍然无法预测生成的ID范围. ASP.NET 4.0使用ClientIDMode属性解决了这个问题,它允许你控制生成这些ID的方法,ClientIDMode有四个可选择的值:AutoID,Static,Predictable和Inherit.下面是这四个值的含义解释: AutoID – 和4.0以前的版本保持一致,自动生成ID. Stat

一起谈.NET技术,asp.net控件开发基础(17)

本篇将开始介绍如自定义数据绑定控件,这里感谢很多人的支持,有你们的支持很高兴.这里首先需要大家熟悉asp.net模板控件的使用,还有自定义模板控件.因为数据绑定控件多是基于模板控件的. 一.回顾 如果你使用过asp.net内置的数据控件(如DataList,Repeater),你一定会这么做 1.设置数据源 DataSource属性 2.调用数据绑定  DataBind方法 3.在控件的不同模板内使用绑定语法显示数据 这三步应该是必须要做的 其他更多的 你可能需要对绑定的数据进行统一的一些操作(

一起谈.NET技术,asp.net控件开发基础(14)

1.错误的代码,无法解析 首先来看一段简单的代码  正确            <asp:Wizard ID="Wizard1" runat="server">                <WizardSteps>                    <asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1"

介绍一个免费的具备数据显示/录入/更新/删除功能的asp.net控件

asp.net|控件|数据|显示 我不能说它比datagrid更强, 因为datagrid有很多深层次的东西可以发掘,但是我能说它比datagrid更易用,更实用,因为它已经轻松实现如下功能,同时,它是完全免费的,不需要注册,没有任何的功能限制. 1. 通过属性设置数据表的显示2. 客户端数据排序3. 各种字段类型的格式化显示4. 所有数据表轻松实现内置的数据添加.更新.删除功能 5. 提供密码字段的支持并使用32位MD5编码6. 添加.更新图象字段.链接文件字段时自动上传文件 7. 上传图片时

asp.net控件开发(三) 处理标签间内容

asp.net控件标签间的内容有的时候处理成节点有的时候处理成子控件.如:间的节点就会处理成属性Text的值,而如Panel这样的控件则就是将其处理成子控件.首先看如何处理成属性的. 一.处理成为属性 对于控件标签间的内容我们可以通过类System.Web.UI.ParseChildrenAttribute类控制控件对其内容的解析行为. ParseChildrenAttribute是一个类级别的属性标识,有四个构造函数: 1.ParseChildrenAttribute(),ChildrenAs