Domanda

Un DataListis reso con <table> o <span> tag, che non voglio.

Ho impostato RepeatLayout="Flow" ma che ancora mi dà campate. Ho impostato RepeaterDirection="Horizontal" ma che ancora mi danno le tabelle.

come posso ottenere un semplice datalist senza tabelle tutte le campate \?

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

Grazie in anticipo!

È stato utile?

Soluzione

Avete bisogno di essere un controllo DataList a tutti? È possibile avere il pieno controllo del rendering HTML utilizzando un Repeater o anche solo scorrendo i vostri oggetti e manualmente il rendering l'output.

Altri suggerimenti

A volte non è possibile utilizzare Repeater, DataList perché fornisce ulteriori possibilità (come l'aggiornamento del database tramite comandi UPDATE e DELETE, lavorando direttamente con l'asp: DataSource).

Quindi, se hai ancora bisogno di usare DataList, ma vuole evitare di usarlo di HTML, è possibile fare un po 'di jQuery su di esso, come ho fatto.

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

Questo produrrà HTML in questo modo:

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

Ovviamente ci sono 2 tag span non è necessario. Per rimuoverli, è possibile aggiungere lo script jQuery nella pagina.

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

Nel mio caso, ho voluto produrre lista non ordinata che io controllo. Ma, come obvius, si può fare qualsiasi altro modo, modificando il codice HTML in DataList e il targeting l'elemento giusto in jQuery (.item).

Spero che questo aiuti qualcun altro che le esigenze funzionalità DataList e non può farlo con ripetitore.

Credo che si potrebbe trovare più facile usare un ripetitore che vi permetterà di impostare il proprio markup

Bascially, creare un ripetitore asp, legano i dati ad esso più o meno allo stesso modo in cui il DataList, e costruire il vostro markup nel tag "ItemTemplate". (Avviso questo è dalla memoria -. Sono sul mio portatile itinerante, in modo da non avere Visual Studio per controllare la sintassi)

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

Si otterrà solo il markup si mette nel template, nient'altro. È possibile saltare l'intestazione e piè di pagina se non ne hanno bisogno. E se non si desidera marcatura a tutti, solo non hanno tag nel modello, i dati verranno fuori come testo semplice.

mi è stato sempre questo errore perché stavo usando <Table> nell'intestazione e </table> nei modelli di piè di pagina, ho rimozione che, e ho usato un intero tavolo su ogni modello e si ferma sempre che i tag indesiderati.

Dato che questo è uno dei primi risultati su Google per questo problema è possibile effettuare le seguenti operazioni:

Se è necessario il controllo Datlist sarà necessario impostare la proprietà RepeatLayout = "Flow"

anwser stato trovato qui: http: //forums.asp .net / t / 1388759.aspx? Datalist + senza + tavolo +

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top