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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ubuntu18.04 升级内核_ubuntu内核版本查看

    ubuntu18.04 升级内核_ubuntu内核版本查看ubuntu18.04.4更换内核版本

  • java数字取整(向上取整,向下取整,四舍五入)

    java数字取整(向上取整,向下取整,四舍五入)向上取整:Math.ceil(doublea)向下取整:Math.floor(doublea)四舍五入取整:Math.round(doublea)例:Math.ceil(24.2)–>25Math.floor(24.7)–>24Math.round(24.2)–>24Math.round(24.7)–>25

  • 静态路由命令配置_配置静态路由的命令格式为

    静态路由命令配置_配置静态路由的命令格式为前话之前发表了相关路由协议简单配置命令,RIP、OSPF等都是动态路由协议。这次我简单写一下静态理由简单配置命令,的确很简单一行命令就可以了。静态路由介绍静态路由是指由用户或网络管理员手工配

  • 网络协议之LLDP

    网络协议之LLDP一、协议简介为什么会出现LLDP?随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。LLDP(LinkLayerDiscoveryProtocol,链路层发…

  • iDEA优化配置

    iDEA优化配置iDEA优化配置1.启动优化配置配置idea软件安装目录下的bin/idea.vmoptions文件,根据自己电脑实际修改前三项大小2.自动导包删包配置按下图配置3.方法分割线4.鼠标悬停提示勾选5.代码忽略大小写提示去掉勾选6.窗口多行显示已打开的class7.新建类配置模版8.编码格式9.自动编译…

  • mysql和mongodb的区别是什么_mongodb和mysql的区别是什么?区别详细介绍

    mysql和mongodb的区别是什么_mongodb和mysql的区别是什么?区别详细介绍对于mongodb和mysql你应该都很清楚了吧,那么他们两个之间的区别你知道吗?很多人对于mongodb和mysql的区别都不是很清楚,下面一起来了解一下吧。一、mongodb和mysql的区别有哪些?对于这两者的区别,我们可以从以下的九个方面来谈一下。1、数据库模型mongodb-非关系型;mysql-关系型;2、存储方式mongodb-以类JSON的文档的格式存储;mysql-不同引擎有不同…

发表回复

您的电子邮箱地址不会被公开。

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