有時你不能使用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