如何动态更改asp.net表单中div的位置

时间:2016-11-23 12:53:50

标签: c# asp.net

在网页表单的设计中我有四个div

  • divGeneralDetails
  • divLanguageDetails
  • divLinkDetails
  • divOperationalDetails

上面提到的Div在表格中垂直显示。

我的问题是。 根据查询字符串中的值,我将不得不更改显示div的顺序。

在我的Page_Load活动中

string FirstDiv = Request.QueryString["id"];

如果FirstDiv的值等于“General”

 then order should be
   - divGeneralDetails    
   - divLanguageDetails    
   - divLinkDetails   
   - divOperationalDetails

如果FirstDiv的值等于“可操作”

  then order should be
 - divOperationalDetails
 - divGeneralDetails    
 - divLanguageDetails    
 - divLinkDetails      

如何在Page_Load事件中设置此项。任何帮助将受到高度赞赏。 感谢

2 个答案:

答案 0 :(得分:0)

如果您想在服务器端执行此操作,那么为了正常使用ViewState(如果正在使用),必须使用 {{中的com.example按所需顺序添加Div。 1}} Page的事件。任何后来都可能会抛弃ViewState。

一种完全不同的方法是在浏览器中使用jQuery来操作Div,请参阅下面的代码片段,了解实现此目的的一种方法:



com.example

Page.Controls.Add()

PreInit




答案 1 :(得分:0)

您可以使用Panel。

示例:

<asp:Panel ID="panelMain" runat="server">
    <asp:Panel ID="divGeneralDetails" runat="server"></asp:Panel>
    <asp:Panel ID="divLanguageDetails" runat="server"></asp:Panel>
    <asp:Panel ID="divLinkDetails" runat="server"></asp:Panel>
    <asp:Panel ID="divOperationalDetails" runat="server"></asp:Panel>
</asp:Panel>

然后重新安排它添加代码:

panelMain.Controls.Clear();
panelMain.Controls.Add(divOperationalDetails);
panelMain.Controls.Add(divGeneralDetails);
panelMain.Controls.Add(divLanguageDetails);
panelMain.Controls.Add(divLinkDetails);