Иногда вы не можете использовать 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>
В моем случае я хотел создать неупорядоченный список, которым я управляю. Но, как и прежде, вы можете сделать это любым другим способом, изменив HTML в DataList и нацеливаясь на нужный элемент в jQuery (.item).
Надеюсь, что это поможет кому-то еще, которому нужна функциональность DataList и который не может сделать это с Repeater.