Frage

Ein DataListis mit <table> oder <span> Tags gerendert, das will ich nicht.

Ich habe Satz RepeatLayout="Flow" aber das gibt mir immer noch Spannweiten. Ich habe Satz RepeaterDirection="Horizontal" aber geben Sie mir noch die Tabellen.

Wie bekomme ich eine einfache Datenliste, ohne alle Spannweiten \ Tabellen?

<asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
   <ItemTemplate>
     ....
   </ItemTemplate>
</asp:Datalist>

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Haben Sie es brauchen eine DataList Kontrolle überhaupt zu sein? Sie können eine Repeater die volle Kontrolle über das gerenderte HTML haben durch die Verwendung oder auch nur Ihre Objekte Schleifen und die Ausgabe manuell zu machen.

Andere Tipps

Manchmal kann man nicht Repeater verwenden, da Datalist zusätzliche Möglichkeiten bietet (wie die Datenbank über UPDATE und DELETE-Befehle zu aktualisieren, arbeitet direkt mit dem asp: Datasource).

Wenn Sie also noch Datalist verwenden müssen, sondern wollen, dass es die html zu vermeiden, können Sie ein bisschen jQuery oben drauf tun, wie ich es tat.

aspx Code:

<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>

Dies wird erzeugen HTML wie folgt aus:

<span id="SomeId" style="">
   <span>
      <li class="item ui-droppable" id="31349">
        Whatever else you need here.
     </li>
   </span>
</span>

Natürlich gibt es 2 span-Tags Sie nicht brauchen. Um sie zu entfernen, können Sie jQuery-Skript auf der Seite hinzuzufügen.

<script type="text/javascript">
$(document).ready(function () {
    $('.item').unwrap(); $('.item').unwrap();
});
</script>

In meinem Fall wollte ich ungeordnete Liste produzieren, dass ich Kontrolle zu bringen. Aber wie Obvius, können Sie es auf andere Weise tun, indem Sie den HTML-Code in Datalist zu ändern und die Ausrichtung der richtigen Artikel in jQuery (.item).

Hope, das hilft jemand anderes, dass Bedürfnisse Datalist-Funktionalität und nicht mit Repeater tun kann.

Ich denke, man könnte es einfacher zu finden, ein Repeater den Sie Ihre eigene Markup festlegen kann

Bascially, Erstellen Sie eine ASP-Repeater, binden Sie Ihre Daten, um es in der gleichen Weise wie die Datenliste, und bauen Sie Ihre Markup im „itemtemplate“ -Tag. (Diese Warnung aus dem Gedächtnis ist -. Ich bin auf dem Roving Laptop, so dass nicht Visual Studio habe Syntax zu überprüfen)

<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>

Sie erhalten nur den Markup Sie sonst in den Vorlagen, nichts bringen. Sie können die Kopf- und Fußzeile überspringen, wenn Sie sie nicht brauchen. Und wenn Sie keine Markup überhaupt wollen, haben nur keine Tags in der Vorlage, werden die Daten kommen als Klartext.

Ich hatte immer diese Fehlermeldung, weil ich <Table> im Header und </table> in den Footer-Vorlagen wurde mit, ich Entferner, und ich verwenden, um eine ganze Tabelle auf jeder Vorlage und es hört, dass unerwünschte Tags zu bekommen.

Da es sich um eine der Top-Ergebnisse bei Google für dieses Problem, das Sie folgendes tun:

Wenn Sie die Datlist Steuerung benötigen Sie die Eigenschaft Repeat = „Flow“

festlegen müssen

anwser wurde hier gefunden: http: //forums.asp .net / t / 1388759.aspx? Datalist + ohne + Tisch +

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top