• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

asp.net组件(3):RenderControl,Render,RenderChildren三者的关系

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
我们主要研究RenderControl,Render,RenderChildren的执行顺序.
三者的含义从他们的命名可以很清楚的看出.
RenderControl绘制控件
Render绘制
RenderChildren绘制子控件
看下面的代码
public class UserComponent : Control
{
    public UserComponent()
    { 
    }

    public override void RenderControl(HtmlTextWriter writer)
    {
        writer.Write(@"<script language='javascript'>alert('RenderControl');</script>");
        //base.RenderControl(writer);
    }


    protected override void Render(HtmlTextWriter writer)
    {
        writer.Write(@"<script language='javascript'>alert('Render');</script>");
        //base.Render(writer);

    } 

    protected override void RenderChildren(HtmlTextWriter writer)
    {
         writer.Write(@"<script language='javascript'>alert('RenderChildren');</script>");
         //base.RenderChildren(writer);
    }
}
运行程序:只弹出对话框 RenderControl
说明:最先被调用的是 RenderControl 绘制控件

将base.RenderControl(writer);的注释去掉
public override void RenderControl(HtmlTextWriter writer)
{
   writer.Write(@"<script language='javascript'>alert('RenderControl');</script>");
   base.RenderControl(writer);
}
运行程序:弹出对话框 RenderControl 然后弹出对话框 Render
说明:控件通过 RenderControl 调用了 Redner

将base.Render(writer);的注释去掉
protected override void Render(HtmlTextWriter writer)
{
        writer.Write(@"<script language='javascript'>alert('Render');</script>");
        base.Render(writer);
} 
运行程序:弹出对话框 RenderControl 然后弹出对话框 Render 然后弹出对话框 RenderChildren
说明:控件通过 RenderControl 调用了 Redner 调用 RenderChildren

现在来看下面的代码,应该有些感觉了吧...
using System;
using System.Web.UI;

namespace WebComponent


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap