Иногда вы не можете использовать 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 пролетных метки не нужно. Чтобы удалить их, вы можете добавить скрипт jQuery на странице.
<script type="text/javascript">
$(document).ready(function() {
$('.item').unwrap(); $('.item').unwrap();
});
</script>
В моем случае я хотел создать неупорядоченный список, который я контролирую. Но как obvius, вы можете сделать это любым другим способом, изменив HTML в DataList и настроив правильный элемент в jQuery (.item).
Надеюсь, это поможет кому-то, кому нужна функция DataList, и не может сделать это с помощью ретранслятора.
ну, просто разобрав запрос из db в список .. я просто хочу управлять стилем .. используя ретранслятор не даст мне span \ tables? просто данные? – NATTO 2010-12-04 16:43:03
@Nat: ретранслятор позволяет указать любой html, который вы хотите. – Chris 2010-12-04 16:44:45