使用<table>
或<span>
标记呈现DataList,我不想这样做。
我已设置RepeatLayout="Flow"
,但仍然给了我跨度。
我已经设置了RepeaterDirection="Horizontal"
,但仍然给了我表格。
如何在没有所有spans \ table的情况下获得一个简单的数据表?
<asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
<ItemTemplate>
....
</ItemTemplate>
</asp:Datalist>
提前致谢!
答案 0 :(得分:12)
你需要它是DataList
控件吗?您可以使用Repeater
完全控制渲染的HTML,甚至只需循环浏览对象并手动渲染输出。
答案 1 :(得分:6)
有时你不能使用Repeater,因为DataList提供了额外的可能性(比如通过UPDATE和DELETE命令更新数据库,直接使用asp:DataSource)。
因此,如果你仍然需要使用DataList但是想要避免使用它,那么就像我一样,你可以在它上面做一些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的人。
答案 2 :(得分:3)
我认为您可能会发现使用repeater更容易,您可以设置自己的标记。
最重要的是,创建一个asp转发器,以与数据列表大致相同的方式将数据绑定到它,并在“itemtemplate”标记中构建标记。 (警告这是来自内存 - 我在我的流动笔记本电脑上,所以没有Visual Studio来检查语法。)
<asp:Repeater runat="server" id="MyRepeater">
<HeaderTemplate><h1>My Data Title</h1></HeaderTemplate>
<ItemTemplate>
<p>Any Markup you want. This bit gets repeated</p>
<%#Container.DataItem("DataKeyOrColumnName")%>
</ItemTemplate>
<FooterTemplate><p>The footter (and header) only appear once.</p><p>you could use them to start and end a list or table</p></FooterTemplate>
</asp:Repeater>
您只会获得放在模板中的标记,而不是其他内容。如果您不需要,可以跳过页眉和页脚。如果您根本不需要标记,只需在模板中没有标记,数据将以纯文本形式显示。
答案 3 :(得分:0)
我收到此错误是因为我在页眉中使用了<Table>
而在页脚模板中使用了</table>
,我将其删除了,并且我在每个模板上使用了整个表格,并且它停止了获取不需要的内容标签
答案 4 :(得分:0)
如果这是Google针对此问题的最佳结果之一,您可以执行以下操作:
如果您需要Datlist Control,则需要设置属性RepeatLayout =“Flow”
在这里找到了Anwser:http://forums.asp.net/t/1388759.aspx?Datalist+without+table+