RenderControl (asp.net)
当要把一个控件的html代码包括内容输出时(比如导出word或excel或直接输出来,或通过httpxmlrequest返回)就要使用控件的
rendcontrol()方法,比如gridview :
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
MyGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
页面将建立一个HtmlTextWriter类的实例;在这个实例中封装了相应流,接着页面会把HtmlTextWriter对象传递给RenderControl,RenderControl会检查控件的Visible属性是否为真,如果是真,RenderControl会调用Render方法,而Render方法会去调用RenderContents,RenderContents方法负责将控件的内容呈现到指定的编写器中,如果控件有子控件的话,Render方法又会把HtmlTextWriter传递给RenderChildren方法,RenderChildren方法负责生成控件的子控件。
我们可以这样认为rendercontrol方法先把控件内容输出到htmlTextWriter,又因为ostringwriter跟htmltextwriter有关联,所以内容也就存储在ostringwriter中 继而通过response.write(ostringwriter.tostring())输出。
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- ASP.ENT前台更改绑定数据的日期格式
- 让asp.net mvc的Action支持jQuery直接提交的javascript对
- .NET简谈设计模式之(装饰者模式性能问题?)
- 使用HttpWebRequest下载经过重定向的文件
- DCOM--高效率主从服务器程序的新概念
- .Net插件框架的实现及分析(二)
- Add View -> Strongly-typed view ->Model Class
- C#高级编程:使用XPath命名空间中的类[2]
- Asp.net MVC源码分析--UrlRoutingModule与Service location的
- .NET类库中发现设计模式:策略模式



