[英]Removing both table and span tags from asp:DataList
使用<table>
或<span>
標記呈現DataList,這是我不想要的。
我設置了RepeatLayout="Flow"
但仍然給了我跨度。 我已經設置了RepeaterDirection="Horizontal"
但仍然給了我表格。
如何在沒有所有跨度\\表的情況下獲得簡單的數據列表?
<asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
<ItemTemplate>
....
</ItemTemplate>
</asp:Datalist>
提前致謝!
你需要它作為DataList
控件嗎? 您可以使用Repeater
完全控制呈現的HTML,甚至只需循環遍歷對象並手動渲染輸出。
有時你不能使用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>
在我的情況下,我想生成我控制的無序列表。 但是作為obvius,您可以通過更改DataList中的HTML並以jQuery(.item)中的正確項目為目標,以任何其他方式執行此操作。
希望這可以幫助其他需要DataList功能但不能使用Repeater的人。
我想您可能會發現使用轉發器更容易,這將允許您設置自己的標記。
基本上,創建一個asp轉發器,以與datalist大致相同的方式將數據綁定到它,並在“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>
您只能獲得放在模板中的標記,而不是其他內容。 如果您不需要,可以跳過頁眉和頁腳。 如果你根本不想要標記,只是模板中沒有標簽,數據將以純文本形式出現。
我收到此錯誤是因為我在頁眉中使用了<Table>
,而在頁腳模板中使用<Table>
</table>
,我將其移除,並且我在每個模板上使用了整個表格,它停止獲取不需要的標簽。
如果這是Google針對此問題的最佳結果之一,您可以執行以下操作:
如果需要Datlist Control,則需要設置屬性RepeatLayout =“Flow”
Anwser在這里找到: http ://forums.asp.net/t/1388759.aspx ?Datalist+without+table+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.