NAT*_*TTO 9 c# asp.net datalist datalistitem
DataList使用<table>或<span>标记呈现,这是我不想要的.
我已经设定RepeatLayout="Flow"但仍然给了我跨度.我已经设定RepeaterDirection="Horizontal"但仍然给我表.
如何在没有所有跨度\表的情况下获得简单的数据列表?
<asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
<ItemTemplate>
....
</ItemTemplate>
</asp:Datalist>
Run Code Online (Sandbox Code Playgroud)
提前致谢!
小智 6
有时你不能使用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>
Run Code Online (Sandbox Code Playgroud)
这将产生这样的HTML:
<span id="SomeId" style="">
<span>
<li class="item ui-droppable" id="31349">
Whatever else you need here.
</li>
</span>
</span>
Run Code Online (Sandbox Code Playgroud)
显然,您不需要2个span标签.要删除它们,可以在页面上添加jQuery脚本.
<script type="text/javascript">
$(document).ready(function () {
$('.item').unwrap(); $('.item').unwrap();
});
</script>
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我想生成我控制的无序列表.但是作为obvius,您可以通过更改DataList中的HTML并以jQuery(.item)中的正确项目为目标,以任何其他方式执行此操作.
希望这可以帮助其他需要DataList功能但不能使用Repeater的人.
| 归档时间: |
|
| 查看次数: |
14589 次 |
| 最近记录: |