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)


相关推荐

  • html——form表单提交方法及表单提交注意点

    html——form表单提交方法及表单提交注意点1、type=”submit”&amp;amp;amp;amp;amp;amp;lt;formname=”form”method=”post”action=”#&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;inputtype=”submit”name=”submit”value=”提交&amp;amp;amp;amp;amp;quo

  • 小型企业的网络拓扑结构设计

    小型企业的网络拓扑结构设计小型企业的网络拓扑结构设计一、设计目的企业局域网的最终目标是建设整个单位的互联、统一、高效、实用、安全的局域网络,近期可支持上百个,远期至少可支持上午个并发用户,提供广泛的资源共享(包括硬件、软件和信息资源共享)。网络结构清楚、布线合理、充分考虑房间分布;局域网性能稳定、安全;软、硬件结合良好,公司日常办公需要,方便资源共享、游览有良好的兼容性和可扩展性,具备单位局域网与其他单位局域网互连,并…

  • P1983 [NOIP2013] 车站分级(拓扑排序)[通俗易懂]

    P1983 [NOIP2013] 车站分级(拓扑排序)[通俗易懂]原题链接题目描述一条单向的铁路线上,依次有编号为 1, 2, …, n1,2,…,n的 nn个火车站。每个火车站都有一个级别,最低为 11 级。现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 xx,则始发站、终点站之间所有级别大于等于火车站xx 的都必须停靠。(注意:起始站和终点站自然也算作事先已知需要停靠的站点)例如,下表是55趟车次的运行情况。其中,前44 趟车次均满足要求,而第 55 趟车次由于停靠了 33 号火车站(22 级)却未停靠途经的 66 号火车站(亦为

  • 手把手教你搭建一个Git服务器

    手把手教你搭建一个Git服务器-Begin-前言现在有很多企业将Git或Svn使用作为一项工作技能体现在招聘要求中。相信大家都听过Github或Gitee,无论是Github还是Gitee,都是一个基于Git的代码托管平台,

  • 几种将网站设为首页的代码是_网页设计基本代码

    几种将网站设为首页的代码是_网页设计基本代码加入收藏夹,设为首页代码把以下代码加入相应位置:加入收藏设为首页鼠标指向时提示设为首页将下列代码插入区中:设为首页打开页面时自动弹出窗口询问是否设为首页将以下代码放在之间:functionmyhomepage(){this.homepage.style.behavior=’url(#default#homepage)’;this.homepag

    2022年10月30日
  • Java中的BufferedReader与BufferedWriter简介与使用

    Java中的BufferedReader与BufferedWriter简介与使用BufferedReader和BufferedWriter是带有默认缓冲区的字符输入输出流,其效率相较于没有缓冲区要高:   1.java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。…

发表回复

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

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