DataListは、UPDATEコマンドとDELETEコマンドでデータベースを更新するなどの追加機能を提供するため、Repeaterを使用できないことがあります。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として、DataListのHTMLを変更し、jQuery(.item)内の適切な項目をターゲットにすることで、他の方法で行うことができます。
これは、DataList機能を必要とし、Repeaterで行うことができない他の人に役立ちます。
よく、DBからのリストを解析しています。私はちょうどスタイルを制御したいと思います。リピーターは私にスパン\テーブルを与えませんか?単純なデータですか? – NATTO
@Nat:リピーターを使用すると、必要なhtmlを指定できます。 – Chris
@Nat:データリストのようにリピータがコンテンツをラップしてはいけません。 – David