2012-05-14 24 views
8

Quiero generar una lista desordenada que contiene una etiqueta para mostrar imágenes en mi base de datos, echo un vistazo a la lista con viñetas, pero no funciona con la imagen. ¿Cómo puedo generarlo dinámicamente a partir de los resultados en una base de datos, por ejemplo, si tengo 6 imágenes en la base de datos, entonces quiero que la lista que genera se vea así?¿Cómo generar listas desordenadas dinámicamente en asp.net?

<ul id=""> 

    <li><img src="Resources/img14.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img15.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img17.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img2.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img5.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img3.jpg" alt="" title=""/></li> 

</ul> 

estructura de tabla

User Name nvarchar(50)  
Pic Path nvarchar(MAX) 
+0

Agregue la estructura de su tabla que almacena el nombre o la ruta del archivo en su base de datos. –

+0

he agregado por favor verifique –

Respuesta

29

Por lo que intenta lograr, sería mejor y más fácil simplemente usar un control <asp:ListView>.

Hay un buen tutorial aquí en cómo usarlo, y más o menos similar a lo que está haciendo http://weblogs.asp.net/scottgu/archive/2007/08/10/the-asp-listview-control-part-1-building-a-product-listing-page-with-clean-css-ui.aspx

Básicamente sería implicar que la creación de un <asp:ListView> de control similares;

<asp:ListView ID="ListView1" runat="server"> 
    <LayoutTemplate> 
     <ul> 
      <asp:PlaceHolder ID="itemPlaceholder" runat="server" />  
     </ul>     
    </LayoutTemplate> 
    <ItemTemplate> 
     <li> 
      <img src='<%#Eval("PicPath")%>' alt='<%#Eval("UserName")%>' /> 
     </li> 
    </ItemTemplate> 
    <EmptyDataTemplate> 
     <p>Nothing here.</p> 
    </EmptyDataTemplate> 
</asp:ListView> 

Luego vinculando sus datos a la misma.

this.ListView1.DataSource = YourDataSource; 
this.ListView1.DataBind(); 
3

supongo que su fuente de datos es un DataSet ds que tiene un DataTable y una picpath campo, entonces se puede escribir la iteración directa en aspx

<ul id=""> 
    <% foreach (DataRow dr in ds.Tables[0].Rows) { %> 

     <li><img src="<% dr[\"picpath\"].ToString() %>" alt="" title=""/></li> 

    <% } %> 
</ul> 

Para hazlo al lado del servidor, mira la respuesta aceptada en el siguiente enlace ver la respuesta aceptada en el siguiente enlace Rendering an unordered list using asp.net

+0

quiero hacer esto en un código detrás, ¿cómo puedo hacer esto –

+0

ver la respuesta aceptada en el siguiente enlace http://stackoverflow.com/questions/2342823/rendering-an -unordered-list-using-asp-net –

+1

El mayor problema al hacer esto en el código subyacente es que tiene que volver a compilar el código cada vez que desee cambiar la forma en que se genera el contenido. Tim publicó un excelente ejemplo de cómo hacerlo usando el control integrado ListView y Imran dio un buen ejemplo de simplemente viejo bucle. Ambos darán un mayor control sobre hacerlo en el código subyacente. –

Cuestiones relacionadas