Pregunta

A DataListis representa con etiquetas <table> o <span>, que no quiero.

He puesto RepeatLayout="Flow" pero que todavía me da vanos. Me he fijado RepeaterDirection="Horizontal" pero que todavía me dan las tablas.

¿Cómo puedo obtener una lista de datos sencilla y sin todos los tramos \ tablas?

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

Gracias de antemano!

¿Fue útil?

Solución

¿Es necesario que sea un control DataList en absoluto? Usted puede tener un control total sobre el HTML representado mediante el uso de un Repeater o incluso sólo un bucle a través de los objetos y de forma manual la prestación de su salida.

Otros consejos

A veces no se puede utilizar Repeater, DataList porque ofrece posibilidades adicionales (como la actualización de la base de datos a través de comandos de actualización y supresión, trabajando directamente con el asp: origen de datos).

Por lo tanto, si todavía necesita utilizar DataList pero quiere evitar que de HTML, puede hacer un poco de jQuery en la parte superior de ella como lo hice.

código 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>

Esto producirá HTML siguiente:

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

Es obvio que hay 2 etiquetas span no necesitas. Para eliminarlos, se puede añadir escritura de jQuery en la página.

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

En mi caso, quería producir lista desordenada que yo controlo. Pero a medida que Obvius, puede hacerlo de otra manera, cambiando el código HTML en DataList y la orientación del artículo correcto en jQuery (.item).

Espero que esto ayude a alguien más que las necesidades de funcionalidad DataList y no puede hacerlo con repetidor.

Creo que puede que le resulte más fácil usar un repetidor que le permitirá configurar su propio margen de beneficio

Bascially, crear un repetidor asp, unen sus datos en él en mucho la misma manera que la lista de datos, y construir su marcado en la etiqueta "itemtemplate". (Advirtiendo que esto es de la memoria -. Estoy en mi computadora portátil itinerante, por lo que no tiene que comprobar la sintaxis de 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>

Sólo obtendrá el marcado se pone en el plantillas, nada más. Puede omitir el encabezado y pie de página si no los necesita. Y si quieres sin margen de beneficio en absoluto, simplemente, no hay etiquetas en su plantilla, los datos van a salir como texto sin formato.

Me estaba recibiendo este error porque estaba usando <Table> en la cabecera y </table> en las plantillas de pie de página, lo que removedor, y utiliza una tabla entera en cada plantilla y que se detenga conseguir que las etiquetas no deseados.

Como se trata de uno de los primeros resultados en Google para este problema, puede hacer lo siguiente:

Si se necesita el control Datlist tendrá que establecer la propiedad RepeatLayout = "Flujo"

Anwser se encuentra aquí: http: //forums.asp .net / t / 1388759.aspx? DataList + sin + mesa +

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top