zoukankan      html  css  js  c++  java
  • web控件开发系列(三) 控件呈现

    控件在WEB开发时经常要用到,虽然有部分已经存在工具箱里,但有时总需要根据自己的要求,开发一些合适自己的控件。


    服务器控件的开发首先要继承基类,Control,WebControl,CompositeControl,至于这些基类有何特性,大家搜一下。自定义服务器控件的呈现有好几种方法,都是通过Render的方法输出,下面列系Render系列的方法的实现过程。RenderControl,Rednder,RenderBeginTag,RenderContents,RenderEndTag,这几个方法执行的过程是这样,RenderControl会调用Render方法,Render方法再调用RenderBeginTag,RenderContents,RenderEndTag,所以我们在开发的时候直接在RenderBeginTag,RenderContents,RenderEndTag这三个方法里面写代码就可以了。

    Code

    这样的控件就以Span输出一个"博客园",你在Default.aspx页面上拖入这个控件,然后运行浏览,查看Html源码:


    Code


    RenderBeginTag与RenderEndTag进行重写的方法输出一个超连接类型的控件,在RenderBeginTag里面定义控件的类型,请看下面代码: 

    Code

    或许你更可以不用那么麻烦,直接在Render里面输出一个控件。

    Code


    直接输出HTML标签也可以实现上面的功能。

    Code


    还有一种方法就是通过RenderControl方法呈现:

    Code

    当然RenderControl作为开发服务器控件常用的呈现方法,还有更多的功能,下面给大家介绍一下CreateChildControls与Render结合,输出多个控件组合成的服务器控件

    Code


    把控件拖进Default.aspx里,运行浏览:



    上面的代码继承了INamingContainer接口,想知道什么原因的,你可以在代码中去掉这个继承,运行,查看HTML源代码再认真看一下各控件的ID有什么不同就知道了。
    它是以this.NamingContainer.ClientID + "_" + this.ID来命名的。
    控件的呈现就介绍到这里了。还有多种不同的方法呈现,这需要大家在开发过程合理运用,是面介绍的只是比较常用的方法而已,实现程序的功能有多种方法,大家按自己的意愿去写吧!欢迎大家讨论,也欢迎大家提出更好的呈现方法。也欢迎大家指正文中的错误。因为每天下班回家做饭,吃完都10点了。都是好晚的时候起草的。

    下一章介绍一下怎样设置控件的属性。

  • 相关阅读:
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 C: Coconut
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 A: Banana
    第2周项目1c++语言中函数参数传递的三种方式
    第2周项目2程序的多文件组织
    【BZOJ 3224】普通平衡树
    【POJ 1741】Tree
    浅谈树分治
    【luogu 2709 / BZOJ 3781】小B的询问
    【luogu 1972 / BZOJ 1878】HH的项链
    【BZOJ 3339 / BZOJ 3585 / luogu 4137】Rmq Problem / mex
  • 原文地址:https://www.cnblogs.com/whtydn/p/1560498.html
Copyright © 2011-2022 走看看