1.引言 参加工作5个月了,来到一家小公司,有几只老鸟带我,但不是我公司的,几个礼拜才来一次.来到公司做的第一个项目是web项目,里面有很多的重复代码,页面代码都是千篇一律,你这人也太水了吧,垃圾代码这么多,被人鄙视了,人嘛,总是要别人刺痛一两次才会往前走,谈恋爱也一样,伤过了,才醒了. 我的最终目的是完成DropDownCheckList这个控件,DropDwonList只能单选,而此控件可以多选的效果,这个效果相信网上的例子一定很多,虽然自己写代码的时代已经过去了,但我还是愿意多写点代码,多…
摘要 前面我们已经做了一个最简单的TextBox的马甲,此篇文章,我们来讲讲自定义控件的标签.大家可能看到了上一篇中拖放进来的代码是 <cc1:TextEdit ID="TextEdit1" runat="server"></cc1:TextEdit>,这肯定不是我们想要的结果了,cc1这种标签命名不好,而且给人感觉也“太水了”,现在我们来改进代码 修改代码 using System; using System.Text; using Sys…
摘要 上一篇我们讲到了自定义标签TagPrefix用法,此篇我们来讲一下控件的呈现,主要是呈现下拉框 内容 呈现的方法有,Render,RenderControl,RenderChildren,这三个方法,其实我也最近才搞明白的,生怕自己忘记,所以就在记下来了,以前学Asp.net页面生命周期的时候,对这些更是一知半解,对此是耿耿于怀,如鲠在喉 ,现在总算是把疑问解决了. 我们先来看看这三个方法底层的实现方法吧,下面是Control类的呈现方式 protected internal virtua…
元数据属性应用于服务器控件及其成员,从而提供由设计工具.ASP.NET 页分析器.ASP.NET 运行库以及公共语言运行库使用的信息.当页开发人员在可视化设计器中使用控件时,设计时属性能改进开发人员的设计时体验.仅用于设计时的属性在页请求期间对控件的功能没有任何影响.控件的分析时属性由 ASP.NET 页分析器在其读取页中控件的声明性语法时使用.分析时属性和运行时属性是保证控件在页中正常工作必不可少的内容. 本主题描述常用于控件及其公共属性 (Property) 和事件的元数据属性 (Attri…
摘要 上一篇我们实现了下拉框的效果,此章的目的主要是保存控件属性状态 内容 我们先来看一个例子,后台代码不变,我们只改UI页面的代码,先在页面上拖放两个控件,一个是我们现在要开发的这个控件,另一个是按钮Button <body> <form id="form1" runat="server"> <XYB:TextEdit ID=" runat="server"></XYB:TextEdit>…
摘要 已经有好几天没有写博客了,今天继续,前几天写到了注册自定义事件,今天我们来讲数据集绑定. 先把运行效果截个图给大家看,让大家心里也有个底.(大家要从第一章开始看起,我们每一章都是接着前面没做完的,一步步的完善) 内容 在ASP.NET数据绑定控件分为三种: 简单数据绑定:简单数据绑定将一个对象与某个控件的属性绑定在一起.数据源只是绑定单个数据项,而不是绑定一个数据项列表.简单数据绑定使用数据绑定表达式完成,数据绑定表达式是用<%#...%>封装的任何可执行代码. 列表控件:列表控件是通过…
摘要 上一篇我们讲了VitwState保存控件状态,此章我们来讲讲嵌入css文件,js文件,嵌入Image文件我也一笔带过. 内容 随着我的控件的完善,我们目标控件DropDwonCheckList最终一定会呈现很多的Html代码,我们虽然可以用C#控制样式,但代价太大,维护起来困难,复用用性低,而且样式也会随着控件的呈现而被呈现出来,没有达到真正的封装.通过学习本章内容,大家可以做一个实验,看看如果没有使用嵌入样式表的方法,呈现的HTML代码. 嵌入资源分三个步骤走: 1.在XYB.Contr…
摘要 前面我们已经把嵌入资源讲完了,不知道大家有没有得到收益,本章主要讲自定义事件,也就是给TextBox注册一个点击事件. 引言 不知道道上的朋友有没有注意到TextBox控件没有点击事件,就连网上非常火爆的Devexpress重写的AspxTextBox控件也没有点击事件,需要触发点击事件的时候,每次都需要用JS来做手脚,但如果某些操作涉及到页面回发(PostBack)呢?这时我就需要把TextBox扩展一下,给TextBox注册一个Click回发事件. 内容 大家都知道Button可以点击…
摘要 上一章,我们讲了嵌入.css文件,这一章,我们来讲一下嵌入.js文件,也顺带一个嵌入Image文件 内容 我们前面的几章,一运行,下拉框就显示出来了,但是DropDwonList的下拉框是被隐藏掉的,而且当我们点击文本框的时候,下拉框就显示出来了,当然,我们最终目标是做DropDwonCheckList控件,它既有TextBox的全部属性,也有DropDwonList的特性.本章我们就利用嵌入的.js来操作此控件. 既然我们是做DropDwonCheckList控件,那我们还是以DropD…
前提: 如下将要介绍的几种类型资源都要在其属性页窗口, 将 <生成操作> 属性, 设置为[嵌入的资源], 如图:   ► 给自定义控件添加自定义图标的几种方案   方法一: 直接在自定义控件项目中添加一个 *.bmp格式的图标文件, 并将其命名 与主控件文件相同, 扩展名为 .bmp, 比如主控件文件名为: CustomButton.cs, 则图标文件命名为: CustomButton.bmp . 编译项目. 然后在工具箱中添加此控件就可以看到刚刚设置的图标效果.   方法二: 图标文件名称与…