• Asp.net自定义控件开发任我行(1)-笑傲江湖


    • 1.引言

      参加工作5个月了,来到一家小公司,有几只老鸟带我,但不是我公司的,几个礼拜才来一次。来到公司做的第一个项目是web项目,里面有很多的重复代码,页面代码都是千篇一律,你这人也太水了吧,垃圾代码这么多,被人鄙视了,人嘛,总是要别人刺痛一两次才会往前走,谈恋爱也一样,伤过了,才醒了。

      我的最终目的是完成DropDownCheckList这个控件,DropDwonList只能单选,而此控件可以多选的效果,这个效果相信网上的例子一定很多,虽然自己写代码的时代已经过去了,但我还是愿意多写点代码,多学点东西。此文章,记录了我一步步走过来的点点滴滴。

    • 2.分析

        1.新建类库,命名为XYB.Controls,XYB 为我的真实的姓名的缩写,在此类库中添加一个类命名为TextEdit,再新建一个Web应用程序,命名为XYB.UI,在XYB.UI 中添加一个页面,命名为TextEditUI.aspx

      

      2.导入命名空间  

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.ComponentModel;//包含组件开发所必须含有的(属性)Attribute;
    using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;

      3.继承

      既然是控件开发,又是Web控件,当然要继承WebControl类,此类的命名空间是System.Web.UI.WebControls,WebControl继承了Control。

      我们这里直接TextBox控件,TextBox继承了WebControl,拥有了TextBox所有的特性

    using System;
    using System.Text;
    using System.Web.UI;
    using System.ComponentModel;//包含组件开发所必须含有的(属性)Attribute;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Collections.Generic;
    namespace XYB.Controls
    {
        public class TextEdit:TextBox
        {
    
        }
    }

    重新生成一下,在工具栏中就会有一个TextEdit的控件,如果没有,按照我以下的步骤,将控件加进来
    1.在工具栏下面找个空白的地方点击右键-->添加选项卡,命名为XYB.Controls组件,名字随便取,再在刚新建好的XYB.Controls组件选项组中找个空白的位置点击右键-->选择项-->浏览,找到XYB.Controls.dll类库,将其添加进来,于是在工具栏中就多了一个TextEdit控件了

     

    3.至此,最简单的自定义控件就完成了,将其拖到页面中去,在浏览器中浏览,其实此控件只是TextBox的一个替身

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TextEditUI.aspx.cs" Inherits="XYB.UI.TextEditUI" %>
    
    <%@ Register Assembly="XYB.Controls" Namespace="XYB.Controls" TagPrefix="cc1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
       
        <cc1:TextEdit ID="TextEdit1" runat="server"></cc1:TextEdit>
    
        </form>
    </body>
    </html>

    •  下集预知:

      自定义TagPrefix 标签,敬请大家关注我!

     

  • 相关阅读:
    css 实现div内显示两行或三行,超出部分用省略号显示
    vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题
    HBuilder打包app(vue项目)
    vue动态路由传值以及get传值及编程式导航
    vue路由vue-router的安装和使用
    vue组件传值之父传子
    vue生命周期钩子函数
    vue定义组件
    vue定义自定义事件方法、事件传值及事件对象
    vue中操作Dom节点的方法
  • 原文地址:https://www.cnblogs.com/xuyubing/p/3324109.html
Copyright © 2020-2023  润新知