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

时间:2009-07-08 13:00:26

标签: c# asp.net html

我只是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>

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

P.S。我的代码隐藏文件是用C#编写的

3 个答案:

答案 0 :(得分: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>

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

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();
}

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

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


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

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

答案 1 :(得分:6)

只需使用Repeater控件即可。简单易行。 :)

答案 2 :(得分:0)

ASP.Net BulletedList。 MSDN