在尝试使用 RenderControl 方法在设计时(在 UITypeEditor 中)从 Web.UI.Page 捕获 HTML 时,我注意到只有服务器控件正在呈现。
所以,给定这个 aspx 页面:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>WebForm1</title>
</head>
<body>
<form id="form1" runat="server">
Some text
<asp:Label runat="server" ID="label1">label1</asp:Label>
<div>
<cc1:MyControl ID="MyControl1" runat="server" BorderStyle="Solid" Height="117px" Width="341px" />
</div>
<div style="margin-top:30px;">
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
</body>
</html>
RenderControl 方法将渲染“label1”、“MyControl1”和“Button1”。表格中的头部和所有 div 都被忽略。
我决定在设计时查看页面的控制树,这就是我得到的:
Page
Label
MyControl
Button
HtmlForm
LiteralControl
这是它在运行时的样子:
webform1_aspx
LiteralControl
HtmlHead
HtmlTitle
LiteralControl
HtmlForm
LiteralControl
Label
LiteralControl
MyControl
LiteralControl
Button
LiteralControl
LiteralControl
有什么想法吗?