有时您不能使用Repeater,因为DataList 提供了额外的可能性(例如通过UPDATE 和DELETE 命令更新数据库,直接使用asp:DataSource)。
因此,如果你仍然需要使用 DataList 但又想避免它是 html,你可以像我一样在它上面做一些 jQuery。
asp代码:
<ul class="list">
<asp:DataList ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" DataKeyField="photo_id" RepeatLayout="Flow" RepeatDirection="Horizontal">
<ItemTemplate>
<li class="item" id='<%# Eval("photo_id") %>'>
Whatever else you need here.
</li>
</ItemTemplate>
</asp:DataList>
</ul>
这将产生如下 HTML:
<span id="SomeId" style="">
<span>
<li class="item ui-droppable" id="31349">
Whatever else you need here.
</li>
</span>
</span>
显然,您不需要 2 个跨度标签。要删除它们,您可以在页面上添加 jQuery 脚本。
<script type="text/javascript">
$(document).ready(function () {
$('.item').unwrap(); $('.item').unwrap();
});
</script>
就我而言,我想生成我控制的无序列表。但显然,您可以通过更改 DataList 中的 HTML 并在 jQuery (.item) 中定位正确的项目来执行任何其他方式。
希望这可以帮助其他需要 DataList 功能但无法使用 Repeater 的人。