0
我发现这篇文章介绍了如何操作asp.net控件的渲染顺序。http://weblogs.asp.net/infinitiesloop/archive/2007/09/07/rendering-asp-net-controls-out-of-order.aspx 我在页面上放置了一些占位符来封装我想要移动的控件。问题是,RenderChildren确实令控制器无我放入占位符这样的HTML:更改控件的渲染顺序
<asp:PlaceHolder id="phOneToMove" Runat="server" Visible="true">
<tr>
<td><asp:Literal id="label1" Runat="server">Caption</asp:Literal></td>
<td>
<asp:TextBox ID="textbox1" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator ID="validator1" Enabled="true" ControlToValidate="textbox1" runat="server" EnableClientScript="False" ErrorMessage="error"></asp:RequiredFieldValidator>
</td>
</tr>
</asp:PlaceHolder>
的控件没有tr
和td
周围渲染。 我该如何处理?我想要的只是改变占位符的顺序,例如phOneToMove
。
注意:我在asp.net 2.0上运行。
显示渲染方法。
不,如果我使用博客帖子中的示例,它甚至无法工作: private void RenderReverse(HtmlTextWriter writer){int i = Controls.Count-1; i> = 0; i--){ 控件[ I] .RenderControl(作家); } } – Uwe 2010-03-02 15:41:42
什么是非工作结果? – Timores 2010-03-02 15:43:22
回答
我找到了解决方案。我的问题是,文字html元素(不是LiteralControls)不在我的usercontrol的Controls属性中。我不知道为什么。所以我开始调试.net Framework代码本身,并且没有开销地设置一个项目。
短:我在ascx文件本身的代码,如
<b><%= myOutputVariable %></b>
。这导致asp不会将文件的文字内容放入控件集合中。我删除了这段代码后,它就像预期的那样工作来源
2010-03-04 09:06:04 Uwe
HTML标签被存储为文字或LiteralControl的控件,所以不管是否需要检查该类型的控件以确保它们也能到达目的地。
来源
2010-03-02 16:59:59
相关问题