asp.net控件开发--文本框(入门篇)

asp.net控件开发--文本框

最近在看那一本下载N久的《asp.net高级编程》,这才发现,原来好东西都被我埋没了!确实学到了好多东西,对以前不理解的东西有了一种顿

悟的感觉!早就想自己开发一个自己的控件让人家用了.可能水平太水了.终于发现这本书里面有讲到.临时做了一个现成的例子,总算成功!
  其实就是一个文本框,添加一个ontextchane事件!废说不说了.来点实在的吧:(代码虽少,理解以后你就强了)
打开VS.NET 2005 新建一个组件类,重命名为:mytext,添加代码:
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Collections.Specialized
Namespace Mytextspace     '这个将是后来的引用名
    Public Class MyTextBoxVB    '这个将是后台的控件名(在控件栏里面的名字)
        Inherits WebControl            '继承webcontrol类,(这样才能扩展服务器控件呀)
        Implements IPostBackDataHandler   '继承自动加载回发数据接口(这样才能安全的触发的事件呀)
        Public Sub New()
            MyBase.New("input")                '构造函数,初始化类,带"input"参数
        End Sub

        Public Event TextChanged As EventHandler     '定义一个事件TextChanged
        Private _value As String
        Public ReadOnly Property text() As String         '定义一个属性
            Get
                Return _value
            End Get
        End Property

 '覆盖addAttiibuteToRender方法,输出在页面上显示的内容

        Protected Overrides Sub addAttributesToRender(ByVal writer As HtmlTextWriter)   

            MyBase.AddAttributesToRender(writer)
            writer.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID)
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "input")
            If Not (_value Is Nothing) Then
                writer.AddAttribute("value", _value)
            End If
        End Sub
'继承接口方法LoadPostData1,设置返回值为:ture,这样RaisePostDataChangedEvent1才有有效.

   Public Function LoadPostData1(ByVal postDataKey As String, ByVal postCollection As System.Collections.Specialized.NameValueCollection) As Boolean 

Implements System.Web.UI.IPostBackDataHandler.LoadPostData   


            _value = postCollection(postDataKey)
            Return True
        End Function
 
'触发事件RaiseEvent
        Public Sub RaisePostDataChangedEvent1() Implements System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent
            RaiseEvent TextChanged(Me, EventArgs.Empty)
        End Sub
    End Class
End Namespace
 
最后还有一步很重要的步骤就是编译.这样别人才能使用的你开的控件(感觉真好),你可以在vs.net2005直接点生成,当然生成之前你也可设置一些版本信息,参数什么的.比较有个性化特征,以防盗版,你也可以使用命令,格式如下:
vbc /out:bin/mytext.dll /t:library mytext.vb /r:system.dll /r:system.data.dll /r:system.xml.dll
vbc:编译vb类的方法,C#用csc
/out:输入文件名.我这里用ymtext.dll
/t:t就是target的意思.也就是目标文件可以写绝对路径如:"f:/swda/app_code/mytext.vb"
/r:添加引用程序集,常用的有:system.dll,system.data.dll,system.xml.dll你也可以使用绝对路径如::"f:/swda/bin/ajax.dll"
输出完成之后在程序里面添加引用.拖入控件栏就可以使用了呀!!开心吧!!哈哈

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值