ASP.NET中自定义的项目符号列表项

sud*_*yes 2 html c# asp.net

我只是ASP.NET的初学者.我的问题很简单,我想从代码隐藏文件中动态添加列表项,我希望每个项目都有一个文本和几个图像作为超链接.HTML示例应该是,

<ul>
  <li>do foo &nbsp;<a href="#"><img src="some_image.png" /></a></li>
  <li>do bar &nbsp;<a href="#"><img src="some_image.png" /></a></li>
  ...
</ul>
Run Code Online (Sandbox Code Playgroud)

项目数取决于代码隐藏文件检索的集合.

PS我的代码隐藏文件是用C#编写的

Jef*_*nal 19

Repeater控制是创建一个自定义的项目符号列表的最简单的方法,再加上它可以让你在生成HTML的完全控制.要使用它,请设置如下模板:

<ul>
<asp:Repeater runat="server" ID="ListRepeater">
   <ItemTemplate>
       <li>do foo &nbsp;<a href='#'><img src='<%# Eval("ImageSource") %>' /></a></li>
   </ItemTemplate>
</asp:Repeater>
</ul>
Run Code Online (Sandbox Code Playgroud)

然后在您的代码隐藏中(或在您的标记中声明性地,取决于您的偏好),设置转发器的数据源并绑定它:

void Page_Load(object sender, EventArgs e) {
  // Some method you've defined to get your images
  List<string> imageList  = GetImages();
  ListRepeater.DataSource = imageList;
  ListRepeater.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

ASP.NET为数据源中的每个项目呈现模板一次.

Repeater控件具有比我在此处显示的功能更多的功能,但这应该可以帮助您入门.祝好运!


编辑:写完这个答案一年后,我仍然认为转发器是服务器控件中的最佳选择,但我越来越喜欢foreach我的.aspx模板中的语句:

<ul>
    <% foreach(Image image in this.Images) { %>
        <li>do foo &nbsp;<a href='#'><img src='<%= image.Source %>' /></a></li>
    <% } %>
</ul>
Run Code Online (Sandbox Code Playgroud)


lep*_*pie 6

只需使用Repeater控件.简单易行.:)