在父中继器中重新排列子中继器

时间:2013-05-21 05:37:04

标签: asp.net repeater

我有一组具有如下结构的嵌套转发器:

Repeater A
     Repeater A-1
     Repeater A-2
     Repeater A-3
Repeater B
     Repeater B-1
     Repeater B-2
     Repeater B-3

我想在运行时动态重新排列父转发器中的子转发器。例如,根据用户配置,我可能希望将Repeater A的子节点的顺序更改为2,3,1。我对服务器或客户端解决方案持开放态度。

1 个答案:

答案 0 :(得分:1)

我会争论客户端jquery方法。这将避免任何回复,这些都是1990年代。如果您能够将转发器内容包装到某种容器元素中并为它们提供Id属性,那么您可以编写一个非常可重用的JQ函数来为您重新排列。

Asp.net代码:(你已经有类似的东西了)

<asp:Repeater DataSource="<%#source%>" runat="server">
  <ItemTemplate>
    <div id="containerA">
      <asp:Repeater DataSource="<%#Container.DataItem%>" runat="server">
        <ItemTemplate>
          <div id="A-<%# Bind("Count") %>"><%#SomeEvaluatedMethod()%></td>
        </ItemTemplate>
      </asp:Repeater>
    </div>
  </ItemTemplate>
</asp:Repeater>

生成的HTML:

<div id="containerA">
   <div id="A1">some text</div>
   <div id="A2">some text</div>
   <div id="A3">some text</div>
</div>

通过Jquery安排div:

为了避免重新发明轮子,请看一下这些例子,这里有几个工作示例。选择最适合您和项目的内容。

Dynamically arranging divs using jQuery