随笔分类 -  CustomControl

自定义控件
摘要:Share 在ASP.NET中与数据打交道接触最多的可能就是各类数据源控件了,这篇在前面的基础上构建一个模板化的数据绑定控件 数据绑定控件 我们现在创建一个继承CompositeDataBoundControl的控件,其可以在<DIV>中显示一批数据项 和前面的内容一样,我们首先实现一个实现IDataItemContainer的控件 然后创建包含其为子项的控件这里的BlockV... 阅读全文
posted @ 2010-08-13 08:11 ringgo 阅读(723) 评论(0) 推荐(0) 编辑
摘要:Share 讲过Eval之后,自然而然的就想到了Bind,我个人认为虽然ASP.NET中的绑定没有Silverlight中的绑定强大,但是都是属于基本功。 双向数据绑定 实现双向绑定主要用到IBindableTemplate返回的对象属性,这个接口也是从ITemplate接口继承的,其包含了2个方法 InstantiateIn()在具体控件中实例化模板的内容 ExtractValues()... 阅读全文
posted @ 2010-08-11 17:36 ringgo 阅读(559) 评论(0) 推荐(0) 编辑
摘要:Share 前面讲了模板的构建,我们忽略了一个细节,如果接触ASP.NET时间不长的话,一般都会看到数据表达式是<%#Eval(‘Name’)%>这种形式的, 那么我们为什么用<%#Container.Name%>这种形式呢,其实前者是ASP.NET控件所支持的一种简化写法,如果在自定义控件中支持简化写法, 需要实现IDataItemContainer接口 ,该接口包含... 阅读全文
posted @ 2010-08-11 08:20 ringgo 阅读(530) 评论(0) 推荐(0) 编辑
摘要:Share   这一节主要涉及到数据绑定控件,如GridView一类,对于ASP.NET Framework中的任何内容,都可以进行扩展,那么数据绑定控件也不例外   对于ListView之类,其都是用ItemTemplate格式化数据的,所以首先介绍一下 ItemTemplate的实现   ITemplate接口   其包含了一个Instantiat... 阅读全文
posted @ 2010-08-09 13:01 ringgo 阅读(691) 评论(0) 推荐(1) 编辑
摘要:Share      通过前面一系列的改进,我们已经可以初步构建出一个功能相对比较全面的控件了,那么,本篇关注一下我们一直忽略的地方,即如何在VS设计器中显示。 设计器体验      这主要有两种方式:控件设计时特性与关联ControlDesigner,下面一一介绍:    ... 阅读全文
posted @ 2010-08-09 08:20 ringgo 阅读(602) 评论(0) 推荐(0) 编辑
摘要:Share 前面重点介绍了ParseChildren特性,当其为False时,控件的内容会自动的解析成控件的子控件,这时控件内包含的所有内容都会添加到Controls集合中, 而控件内任何非服务器控件将解析成Literal控件,某些时候可能仅允许一种控件被添加到Controls集合里。 AddParsedSubObject() AddParsedSubObject()会在每个控件被添加进Co... 阅读全文
posted @ 2010-08-05 08:21 ringgo 阅读(544) 评论(0) 推荐(0) 编辑
摘要:Share 在前面的几节基础上,现在我们开始涉足构建对象集合的控件,以GridView而言,其内部就包含了多个DataBoundField控件来表示所要显示的各个列。 首先了解名为ParseChildren的特性,其用来决定如何解析控件包含的内容:值为True时,控件所包含的内容将作为控件的属性解析,若该控件包含子控件, 则该子控件将作为外围控件的属性进行解析;当值为False时,则控件包含的... 阅读全文
posted @ 2010-08-05 08:18 ringgo 阅读(543) 评论(2) 推荐(0) 编辑
摘要:Share 在处理回传事件中,还需要考虑的因素就是事件参数和选项 传递回传事件参数 前面曾提到GetPostBackClientHyperlinkc(),可以为其提供一个可选参数,其在引发回传时从浏览器传到服务器,它的值传递到服务器的 RaisePostBackEvent()中,这里实现的功能类似于GridView的分页功能,单击时显示某一页数据  测试部分的主要代码当页面呈现在... 阅读全文
posted @ 2010-08-03 08:30 ringgo 阅读(535) 评论(0) 推荐(0) 编辑
摘要:Share 前面讲到了视图和控件状态,ASP.NET中有个概念叫做回传,因为ASP.NET框架是围绕Web表单构建的,回传即信息从客户端浏览器传递到服务器的过程。 那么这其中又分为2种情况: 当控件引起回传的时候,表单回传到服务器,会引发服务器控件,比如Button被单击时,Click事件则会再包含该Button的表单中回传给服务器,这也称为回传事件。 第2种情况则是,Web表单中的数据也可... 阅读全文
posted @ 2010-08-03 08:21 ringgo 阅读(569) 评论(0) 推荐(0) 编辑
摘要:Share 在ASP.NET框架中支持在回传中保存值的有2种方式:视图状态和控件状态 视图状态 ASP.NET中几个对象属性与控件最为密切的,就是ViewState了。 这里对其做下说明,任何可... 阅读全文
posted @ 2010-07-25 16:41 ringgo 阅读(632) 评论(0) 推荐(0) 编辑
摘要:Share     在自定义控件的构建(3)中,我们构建了组合控件,实际上,在大部分构建组合控件时,同时会指定其子控件的布局 构建混合控件   下面的代码是设计为一个登录控件,同时指定其布局 运行后查看界面源码可见TextBox是生成在一个表格中的。默认的RenderContents()只调用每个子控件的RenderContents(),通过重写控件的... 阅读全文
posted @ 2010-07-25 15:39 ringgo 阅读(740) 评论(0) 推荐(0) 编辑
摘要:  Share 在自定义控件的构建(1)中曾提到WebControl在浏览器中被渲染为<span>,如果需要,可以重写TagKey指定其它的标签 下面的例子,用<div>标签生成内容 该控件重写了基类的TagKey属性,所以查看源码是渲染成<div>,实际上不仅仅此方法可以修改生成的标签,也可以通过重写TagName属性代替Tagkey。上面的代码... 阅读全文
posted @ 2010-07-23 18:47 ringgo 阅读(738) 评论(1) 推荐(0) 编辑
摘要:Share第1篇主要介绍了完全生成控件方式, 本篇对于关键的HtmlTextWriter类,做些简单的介绍HtmlTextWriter类被设计为生成HTML的,其把HTML写到浏览器上。详细的可以参考MSDN地址:HtmlTextWriter类这里主要介绍用的比较多的几个AddAttribute()给RenderBeginTag()生成的标签添加HTML特性AddStyleAttribute()给... 阅读全文
posted @ 2010-07-23 17:45 ringgo 阅读(856) 评论(0) 推荐(0) 编辑
摘要:Share 其实ASP.NET Framework本身已经为我们提供足够多的控件了,初学者接触ASP.NET时,多是从拖控件开始着手的,那么这种方式用了久了之后,如果想知道这背后的机制是怎样的,那么,这时候可以通过自定义控件这一系列步骤来理解这背后ASP.NET为我们做了哪些事情。 我们从以下两个问题开始入手:1,需要编写什么类型的控件?     ... 阅读全文
posted @ 2010-07-23 16:19 ringgo 阅读(1479) 评论(1) 推荐(0) 编辑