我有一组嵌套中继器,其结构如下:
Repeater A
Repeater A-1
Repeater A-2
Repeater A-3
Repeater B
Repeater B-1
Repeater B-2
Repeater B-3
我想在运行时动态地重新排列父中继器中的子中继器。例如,根据用户配置,我可能想将中继器 A 的子级的顺序更改为 2、3、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:
为避免重新发明轮子,请查看这些示例,这里有几个工作示例。选择对您和您的项目最有意义的方法。