我只是ASP.NET的初学者。我的问题很简单,我想从代码隐藏文件中动态添加列表项,我希望每个项目都有一个文本和几个图像作为超链接。 HTML示例应该是,
<ul>
<li>do foo <a href="#"><img src="some_image.png" /></a></li>
<li>do bar <a href="#"><img src="some_image.png" /></a></li>
...
</ul>
项目数取决于代码隐藏文件检索的集合。
P.S。我的代码隐藏文件是用C#编写的
答案 0 :(得分:19)
Repeater
控件是创建自定义项目符号列表的最简单方法,而且它可让您完全控制自己生成的HTML。要使用它,请设置如下模板:
<ul>
<asp:Repeater runat="server" ID="ListRepeater">
<ItemTemplate>
<li>do foo <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 <a href='#'><img src='<%= image.Source %>' /></a></li>
<% } %>
</ul>
答案 1 :(得分:6)
只需使用Repeater控件即可。简单易行。 :)
答案 2 :(得分:0)
ASP.Net BulletedList。 MSDN