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
相關問題