2012-05-14 65 views
8

我想生成一個無序列表,其中包含用於顯示數據庫中圖像的標記,我看看項目符號列表,但它不適用於圖像。我怎樣才能從數據庫中的結果動態生成它,例如,如果我在數據庫中有6個圖像,那麼我想要生成的列表必須看起來像這樣。如何在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> 

表結構

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

請添加您的表格結構,用於存儲數據庫中的文件名或路徑。 –

+0

我已經加入請檢查 –

回答

29

對於你想要達到的目標,最好也是最簡單的方法就是使用<asp:ListView>控件。

有一個很好的教程在這裏如何使用它,並且非常類似於你在做什麼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

這將主要涉及您創建一個<asp:ListView>控制等;

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

然後將您的數據綁定到它。

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

我想你的數據源是具有一個DataTable,並現場picpath一個DataSet DS,那麼您可以直接在ASPX寫迭代

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

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

    <% } %> 
</ul> 

要做到服務器端看下面的接受回答鏈接 看到接受的答案在下面的鏈接Rendering an unordered list using asp.net

+0

我想要做的這件事情在後面的代碼,我該怎麼做這個事情有 –

+0

請參閱以下鏈接接受的答案http://stackoverflow.com/questions/2342823/rendering-an -unordered-list-using-asp-net –

+1

在後面的代碼中執行此操作時遇到的最大問題是,無論何時您想要更改內容的輸出方式,都必須重新編譯代碼。 Tim發佈了一個很好的例子,說明如何使用內置的ListView控件來實現它,而Imran給出了一個很簡單的舊循環的例子。兩者都會在後面的代碼中更好地控制它。 –