Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改控件的呈现顺序_C#_Asp.net_Asp.net 2.0 - Fatal编程技术网

C# 更改控件的呈现顺序

C# 更改控件的呈现顺序,c#,asp.net,asp.net-2.0,C#,Asp.net,Asp.net 2.0,我找到了这篇关于如何操作asp.net控件的呈现序列的文章: 我在页面上放置了一些占位符来封装我想要移动的控件。问题是,RenderChildren在没有将html放入占位符的情况下呈现控件,如下所示: <asp:PlaceHolder id="phOneToMove" Runat="server" Visible="true"> <tr> <td><asp:Literal id="label1" Runat="server">Caption<

我找到了这篇关于如何操作asp.net控件的呈现序列的文章: 我在页面上放置了一些占位符来封装我想要移动的控件。问题是,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上运行。

HTML标记存储为tyep Literal或LiteralControl的控件,因此,TheLogic works必须检查该类型的控件,以确保它们也到达目的地。

我找到了解决方案。我的问题是,不是LiteralControls的LiteralHTML元素不在我的usercontrol的Controls属性中。我不知道为什么。因此,我开始调试.net Framework代码本身,并在没有开销的情况下设置一个项目


简短:我在ascx文件中有类似的代码。这会导致asp不会将文件的文字内容放入控件集合中。删除此代码后,其工作方式与预期一致。

显示渲染方法。ASP.NET将etc转换为标签控件。如果你只渲染你明确知道的控件,你会错过这些tr/td。不,如果我使用blogpost中的例子,它甚至不起作用:private void RenderReverseHtmlTextWriter writer{for int I=controls.Count-1;I>=0;I-{controls[I].RenderControlwriter;}},那么不起作用的结果是什么?对不起,我弄错了。不呈现控件的所有直接子控件之外的HTML标记。只要我把它们放进一个占位符,它就会工作。html代码不也显示为childcontrols吗?。我没有代码在渲染过程中跳过任何控件。