C# 如何在asp.net中动态生成无序列表?

C# 如何在asp.net中动态生成无序列表?,c#,asp.net,html,asp.net-4.0,C#,Asp.net,Html,Asp.net 4.0,我想生成一个无序列表,其中包含用于在数据库中显示图像的标记,我查看了项目符号列表,但它不能处理图像。如何从数据库中的结果动态生成它,例如,如果数据库中有6个图像,那么我希望生成的列表必须如下所示 <ul id=""> <li><img src="Resources/img14.jpg" alt="" title=""/></li> <li><img src="Resources/img15.jpg" alt="

我想生成一个无序列表,其中包含用于在数据库中显示图像的标记,我查看了项目符号列表,但它不能处理图像。如何从数据库中的结果动态生成它,例如,如果数据库中有6个图像,那么我希望生成的列表必须如下所示

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

我假设您的数据源是一个DataSet ds,它有一个DataTable和一个字段picpath,那么您可以直接在aspx中编写迭代

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

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

    <% } %>
</ul>
  • “alt=”“title=”“/>
要在服务器端执行此操作,请参见下面链接中的接受答案
请参见以下链接中的公认答案

了解您想要实现的目标,使用

它基本上涉及到创建一个
控件,比如

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

请添加在数据库中存储文件名或路径的表结构。我想在代码隐藏中执行此操作,如何执行此操作请参见以下链接中的公认答案在代码隐藏中执行此操作的最大问题是,您必须在任何时候更改内容的输出方式时重新编译代码。Tim发布了一个关于如何使用内置ListView控件的好例子,Imran给出了一个简单的旧循环的好例子。这两种方法都可以更好地控制代码背后的操作。它是否使用
标签生成
输入
<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();