有时你不能使用Repeater,因为DataList提供了额外的可能性(如通过UPDATE和DELETE命令更新数据库,直接使用asp:DataSource)。因此,如果你仍然需要使用DataList,但是要避免它的html,那么你可以在它上面做一些jQuery,就像我做的那样。
ASPX代码:
<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个span标签。要删除它们,你可以在页面上添加jQuery脚本。
<script type="text/javascript">
$(document).ready(function() {
$('.item').unwrap(); $('.item').unwrap();
});
</script>
在我的情况下,我想产生我控制的无序列表。但作为obvius,您可以通过更改DataList中的HTML并以jQuery(.item)中的正确项目为目标来以任何其他方式执行此操作。
希望这可以帮助需要DataList功能的其他人,而无法使用Repeater完成此操作。
好吧,它只是解析查询从数据库到列表..我只是想控制风格..使用中继器不会给我span \表?只是普通的数据? – NATTO 2010-12-04 16:43:03
@Nat:中继器允许你指定你想要的任何html。 – Chris 2010-12-04 16:44:45