2009-07-08 76 views
1

我只是ASP.NET的初学者。我的问题很简单,我想从代码后面的文件中动态地添加列表项目,我希望每个项目都有一个文本和一对图像作为超链接。 HTML样本应该是这样的:ASP.NET中的自定义项目符号列表项目

<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编写#

回答

18

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控件比我在这里展示的功能更多,但是这应该让你开始。祝你好运!


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

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

我认为它应该被写为,

  • 做FOO
无论如何,非常感谢指导 – sudarsanyes 2009-07-08 14:20:27

6

只需使用Repeater控制。简单而简单。 :)

+1

我不会称之为简单或简单,但我认为这是标准webforms(+1)中的最佳方式。享受ItemDataBound事件。 – 2009-07-08 13:08:52

1

ASP.Net BulletedList。 MSDN