Aspx中控件树的生成

前台页面对象结合后台方法生成html代码的原理:默认生成一个控件树:然后往控件树上添加子节点。子节点里有方法。
首先前台页面类会调用一个_BuildControlTree(生成控件树)方法,负责组织整个页面的内容。
生成控件树,首先要求每一个节点要求有hasNodes属性,而前台类->后台类-->page-->template Control-->Control(包含
ControlCollection对象),所以前台类对象也具有这样一个对象。前台页面类实现一个IParseAccesor接口,然后调用接
口的添加子节点方法,添加的子节点有两类,一类是LiteralControl对象(文本内容),一类是加runat="server"的元素,
会生成单独的对象,然后调用实现了接口的方法将对象添加到父节点上,Body,被作为LiteralControl对象,不能有子节点,
所以把form对象直接添加到前台页对象下form对象下有runat="server"的控件,后调用方法添加到form对象下。form对象有一
个呈现的方法,将页面类的对象转换成html代码,里面的子对象各自再具体实现,加ruant="server"的子节点对象调用
RendorControl方法转换成html代码,没有runat="server"的控件则被当做普通字符串输出。

 

前台页面对象结合后台方法生成html代码的原理:服务器在处理aspx和cs页面时,会把根据页面结构把一个页面生成一个控件树,
控件树有子节点,然后遍历调用ranat=“server”的控件的render(呈现)方法将控件下的C#代码生成html代码,发回给浏览器
呈现:将服务器端控件的对象转换成HTml代码(服务器端控件的呈现),将页面类的对象转换成html代码(页面类的代码)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值