我最近学会编写自己的WebControls,但我仍然对Render和RenderControl之间的区别感到朦胧。我开始使用Render,但是在某个时候我开始使用RenderControl,现在我只使用RenderControl。如果我正在形成一种坏习惯,那么在我开始行动之前,我想先扼杀它。WebControl创建中的Render和RenderControl有什么区别?
回答
如果有一个现有的控件提供你想要的,所以你可以利用RenderControl如何呈现。
如果您需要完全控制html呈现方式,则使用渲染。
你当然也可以将二者结合起来为你的编程时间的最优化利用...
RenderControl用于页面呈现子控件。渲染允许单独的控件渲染自身。
这里有一个很好看的:从链接 Render vs RenderControl
摘录:
的Render方法使 控制器通过写 HTML输出响应流来表现自己。 这将传递对 HTMLTextWriter对象的引用,该对象可以将 直接写入响应流。当您直接从控制派生 时,应使用此方法 。
的RenderControl方法由页面中使用 渲染每个个体 控制。它允许您的课程的用户 呈现它,如果您使用的是复合控件,则可以使用 呈现子控件(如果 )。 此外,有一点需要注意的是,如果该控件的可见性 属性设置为 false,则不会调用此 。
渲染是一个受保护的方法,也就是说只有派生类可以访问它。它在事件生命周期内调用,不应在代码中明确调用。
RenderControl是一种公共方法,允许您在需要时调用Render方法。您可以将其用于自定义控件中,将控件存储在ControlsCollection中,但希望将它们渲染到表格中的单元格中。例如:
writer.Write(""): foreach(Control ctl in Controls) { writer.Write("") ctl.RenderControl(writer); writer.Write(""); } writer.Write("");
你应该总是覆盖渲染,而不是RenderControl,因为它是所谓的事件生命周期(就像我已经说过)
(从http://forums.asp.net/t/909220.aspx/1,对不起,我的回答仅仅是一个复制和粘贴,但我没有看到太多的重写这样一个清晰的解释)
我仍然不明白为什么MS不是简单地使Render()公共方法。为什么需要单独的RenderControl()?迄今为止给出的所有答案都没有推论。第一个可以解释它的人会得到一个闪亮的upvote。
- 1. UserControl,WebControl,RenderedControl和CompositeControl有什么区别?
- 2. Awesomium - WebView和WebControl有什么区别?
- 3. 创建和新建有什么区别?
- 4. flask中的render()和render_template()有什么区别?
- 5. DevExpress中的Render和GetHtml方法有什么区别?
- 6. Liferay中的doView()和render()函数有什么区别?
- 7. Django - render(),render_to_response()和direct_to_template()之间有什么区别?
- 8. 有什么区别`和$(Bash中有什么区别?
- 9. 创建操作中User.last和User.find_by_id(params [:user_id])有什么区别?
- 10. 在DBIx :: Class中填充和创建方法有什么区别?
- 11. $ this-> render()和$ this-> redirect()之间的区别是什么
- 12. 构建和部署有什么区别?
- 13. 构建和补丁有什么区别?
- 14. jsf中render和reRender属性的区别
- 15. “asynchronousFetchRequest”和“创建私有上下文”有什么区别?
- 16. 分配和创建实例的字符串有什么区别?
- 17. 创建分支的svn copy和svn merge有什么区别?
- 18. 创建结构的“数据”和“类型”有什么区别?
- 19. WebControl和CompositeControl之间的区别?
- 20. 什么时候创建了app.config,什么时候app.exe.config和有什么区别
- 21. 有什么区别? :和||
- 22. &&和||有什么区别?
- 23. “/”和“/ *”有什么区别?
- 24. 有什么区别:。!和:r!?
- 25. ==和===有什么区别?
- 26. Appender和〜有什么区别?
- 27. $ @和$ *有什么区别?
- 28. is和=有什么区别?
- 29. #.00和#。##有什么区别?
- 30. `==`和`is`有什么区别?
+1用于详细说明关于系统的一些混淆位。帮助为我绘制更完整的照片。 – 2012-09-21 16:35:18