Render,RenderChildren,RenderControl

Render,RenderChildren,RenderControlprotectedinternalvirtualvoidRender(HtmlTextWriterwriter){this.RenderChildren(writer);}protectedinternalvirtualvoidRenderChildren(HtmlTextWriterwriter){ICollectionchildren=(th…

大家好,又见面了,我是你们的朋友全栈君。

protected
 
internal
 
virtual
 
void
 
Render
(HtmlTextWriter writer)
{

    

this
.RenderChildren(writer);
}


protected
 
internal
 
virtual
 
void
 
RenderChildren
(HtmlTextWriter writer)
{

    ICollection children 

=
 (
this
._occasionalFields 
==
 
null

?
 
null
 : ((ICollection) 
this
._occasionalFields.Controls);
    

this
.RenderChildrenInternal(writer, children);
}


internal
 
void
 RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
{

    

if
 ((
this
.RareFields 
!=
 
null

&&
 (
this
.RareFields.RenderMethod 
!=
 
null
))
    {

        writer.BeginRender();
        

this
.RareFields.RenderMethod(writer, 
this
);
        writer.EndRender();
    }
    

else
 
if
 (children 
!=
 
null
)
    {

        

foreach
 (Control control 
in
 children)
        {

            control.RenderControl(writer);
        }
    }
}

 

 

public
 
virtual
 
void
 
RenderControl
(HtmlTextWriter writer)
{

    

this
.RenderControl(writer, 
this
.Adapter);
}


protected
 
void
 RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
{

    

if
 (
!
this
.flags[
0x10

&&
 
!
this
.flags[
0x200
])
    {

        HttpContext context 

=
 (
this
.Page 
==
 
null

?
 
null
 : 
this
.Page._context;
        

if
 ((context 
!=
 
null

&&
 context.TraceIsEnabled)
        {

            

int
 bufferedLength 
=
 context.Response.GetBufferedLength();
            

this
.RenderControlInternal(writer, adapter);
            

int
 num2 
=
 context.Response.GetBufferedLength();
            context.Trace.AddControlSize(

this
.UniqueID, num2 

 bufferedLength);
        }
        

else

        {

            

this
.RenderControlInternal(writer, adapter);
        }
    }
}


private
 
void
 RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
{

    

if
 (adapter 
!=
 
null
)
    {

        adapter.BeginRender(writer);
        adapter.Render(writer);
        adapter.EndRender(writer);
    }
    

else

    {

        

this
.Render(writer);
    }
}

 
Render—–>RenderChilds—->RenderControl——Render
 
一个重写Render的例子:

 

 

protected
 
override
 
void
 Render(HtmlTextWriter pOutPut)
        {

            pOutPut.Write(


<Div Class=\”TabControl tab-pane\” ID=\”

 
+
 
this
.UniqueID 
+
 

_Tab\” Style=\”

 
+
 EPWebControl.GetControlStyle(
this
.Width, 
base
.Style) 
+
 

\”>

);
            

//
隐藏的控件


            
this
.SelectedTab.RenderControl(pOutPut);
            

//
标签头部


            pOutPut.Write(

<DIV Class=\”tab-row\”>

);
            

this
.RenderTabButton(pOutPut);
            pOutPut.Write(


</Div><Div>

);
            

//
标签内容


            
this
.RenderTabContent(pOutPut);
            pOutPut.Write(


</Div></Div>

);
        }

 

private
 
void
 RenderTabButton(HtmlTextWriter pOutPut)
        {

                

for
 (
int
 num1 
=
 
0
; num1 
<
 
this
.Items.Count; num1
++
)
                {

                    

if
(
this
.Items[num1].Visible 
==
 
true
)
                    {

                        

if
 (
this
.Items[num1].Selected)
                        {

                            pOutPut.Write(


<H2 class=\”tab hover selected\” onMouseOver=\”Tab_OnMouseOver(this)\” onMouseOut=\”Tab_OnMouseOut(this)\”>

 
+
 
this
.Items[num1].Caption 
+
 

</H2>

);
                        }
                        

else
 
                        {

                            pOutPut.Write(


<H2 class=\”tab\” onMouseOver=\”Tab_OnMouseOver(this)\” onMouseOut=\”Tab_OnMouseOut(this)\” onClick=\”Tab_OnSelectServerClick(this,’

 
+
 
this
.Items[num1].UniqueID 
+
 

‘);

 
+
 
this
.Page.GetPostBackEventReference(
this

“”

+
 

\”>

 
+
 
this
.Items[num1].Caption 
+
 

</H2>

);
                        }
                    }
                }
            
        }

 

private
 
void
 RenderTabContent(HtmlTextWriter pOutPut)
        {

            

for
 (
int
 i 
=
 
0
; i 
<
 
this
.Items.Count; i
++
)
            {

                

if
(
this
.Items[i].Visible 
==
 
true
)
                {

                    

this
.Items[i].RenderControl(pOutPut);
                }
            }
        }

 

item的 Render
 

protected
 
override
 
void
 Render(HtmlTextWriter pOutPut)
        {


            
if
(
this
.Visible)
            {

                

if
 (
this
.Selected)
                {

                    pOutPut.Write(

string
.Concat(
new
 
object
[] { 

<DIV id=\”


this
.UniqueID, 

\” class=\”tab-page\” style=\”Height:


this
._Owner.Height, 

;Width:100%;DISPLAY: block\”>

 }));
                }
                

else

                {

                    pOutPut.Write(

string
.Concat(
new
 
object
[] { 

<DIV id=\”


this
.UniqueID, 

\” class=\”tab-page\” style=\”Height:


this
._Owner.Height, 

;Width:100%;DISPLAY: none\”>

 }));
                }
            }
            

this
.RenderChildren(pOutPut);
            pOutPut.Write(


</DIV>

);
        }

 

 

转载于:https://www.cnblogs.com/kasafuma/archive/2011/04/06/2006666.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162033.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android Hook技术详解

    Android Hook技术详解代理模式详解,动态代理原理分析,AndroidHook技术详解以及其在插件化,性能优化上的一些案例分析。

    2022年5月25日
    139
  • ssh配置命令_ssh config配置

    ssh配置命令_ssh config配置文章目录Linux_day05一.运行模式1.init2.systemd==二.用户与用户组管理==1.用户管理**a.添加用户**(linux中允许一个用户属于多个用户组)·b.修改用户信息c.设置密码d.**删除用户**2.用户组管理a.用户组添加b.用户组修改c.删除用户组三.网络设置扩展:创建快捷方式==四.ssh服务==1.远程终端2.通过ssh进行远程文件互相传输Linux_day05一.运行模式也称运行级别在过去Linux中存在一个进程:init(initialize,初始化);

    2022年8月9日
    2
  • 炫酷的数据可视化_人力资源看板 数据可视化

    炫酷的数据可视化_人力资源看板 数据可视化12个超炫数据可视化工具今天我们带来一篇来自Adobe工程师RohitBoggarapu的文章。他在文章中介绍了一些适合网页开发者的数据可视化和绘图工具,让你不必再花大力气与枯燥的数据抗争。部分工具不要求写代码也可以使用!我们诠释数据的方式和数据本身之间存在着巨大的鸿沟。尤其是当我们唯一的选择是盯着表格中一列列不知所云的数字时。这可能是最无聊的一种格式了。没有哪个网页开发者会喜欢电子…

    2022年9月1日
    3
  • 次世代3A游戏开发将飙至1.5亿美元,游戏时长将更短

    次世代3A游戏开发将飙至1.5亿美元,游戏时长将更短即将翻过的这个世代,是大作的时代,涌现了一大批的大作,譬如《荒野大镖客2》、《GTA5》、《巫师3》等游戏。当然也是预算高涨、不断跳票和开发商经常加班加点的时代。随着PS5和XSX即将到来,随之一起的将是有史以来细节最丰富和预算更贵的游戏世界,问题就出现了:游戏行业还会继续痴迷于这么庞大世界的游戏吗?在GameBabLive会议上,SIE前总裁ShawnLayden表达了对次世代游戏开发成本倍增的担忧。他认为次世代3A游戏的开发将不可避免地从今天的8000万美元飙升至1.5亿美元。因此Lay

    2022年6月10日
    77
  • vue todolist案例_nodejs mvc

    vue todolist案例_nodejs mvc1.应用模板下载:TodoMVC案例官网:http://todomvc.com如图下载模板:2.npm安装依赖通过nmp安装相关依赖,进入vscode,找到文件,右键点击在集成终端中打开,输入命令npmi进行安装;并且安装npmivue@2.6.103.引入Vue.js我们在app.js中编写Vue代码,所以要在app.js前面引入4.数据渲染4.1当任务列表(items)没有数据时,#main和#footer标识的标签应该被..

    2025年10月29日
    2
  • 句号压缩过滤器

    句号压缩过滤器

    2022年1月10日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号