簡體   English   中英

從asp:DataList中刪除table和span標記

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM