广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Web控件开发系列(三) 控件呈现

    2018-04-04 08:35:20 次阅读 稿源:互联网
    广告

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

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

    Code
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace ServerControl
    {
    public class RenderOutPut : WebControl
    {
    protected override void RenderContents(HtmlTextWriter writer)
    {
    writer.Write("博客园");
    }
    }
    }

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

    Code
    <!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><title>

    </title></head>
    <body>
    <form name="form1" method="post" action="default.aspx" id="form1">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzc1Nzg5MDYwZGS8eaaFjyrhLWbFGOz9cnFT040a+A==" />
    </div>

    <span id="CC">博客园</span>
    </form>
    </body>
    </html>

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

    Code
    Code
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace ServerControl
    {
    public class RenderOutPut : WebControl
    {
    public override void RenderBeginTag(HtmlTextWriter writer)
    {
    writer.AddAttribute(HtmlTextWriterAttribute.Href, "http://www.cnblogs.com"); //通过HtmlTextWriterAttribute添加属性
    writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "bule"); //通过HtmlTextWriterStyle添加样式
    writer.RenderBeginTag(HtmlTextWriterTag.A); //通过HtmlTextWriterTag添加控件
    }
    protected override void RenderContents(HtmlTextWriter writer)
    {
    writer.Write("博客园");
    }
    public override void RenderEndTag(HtmlTextWriter writer)
    {
    writer.RenderEndTag();
    }
    }
    }

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

    Code
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace ServerControl
    {
    public class RenderOutPut : WebControl
    {
    protected override void Render(HtmlTextWriter writer)
    {
    writer.AddAttribute(HtmlTextWriterAttribute.Href, "http://www.cnblogs.com");
    writer.RenderBeginTag(HtmlTextWriterTag.A);
    writer.Write("博客园");
    writer.RenderEndTag();
    }
    }
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告