2011-03-27 22 views

回答

0

我不知道为什么有BulletedList中的listItems中的一个集合。 ListItems通常用于表单元素(即Selected,Value,Text属性),对于用于项目符号列表没有意义。也没有包含子ListItems的属性来实现您的目标。我建议使用你自己的类来做到这一点。这里是一个快速样机:

public static class BulletList 
{ 
    public static string RenderList(List<BulletListItem> list) { 
     var sb = new StringBuilder(); 
     if (list != null && list.Count > 0) 
     { 
      sb.Append("<ul>"); 
      foreach(var item in list) { 
       sb.Append(item.Content); 
       sb.Append(BulletList.RenderList(item.Children)); 
      } 
      sb.Append("</ul>"); 
     } 
     return sb.ToString(); 
    } 
} 

public class BulletListItem 
{ 
    public string Content { get; set; } 
    public List<BulletListItem> Children { get; set; } 
} 

然后您可以创建与儿童和其输出列表...

var items = new List<BulletListItem>(); 
items.Add(new BulletListItem() { Content = "Root 1" }); 
items.Add(new BulletListItem() { Content = "Root 2", Children = new List<BulletListItem>() { new BulletListItem() { Content = "Child 2.1" }} }); 
items.Add(new BulletListItem() { Content = "Root 3" }); 
Response.Write(BulletList.RenderList(items)); 
+0

不从Control继承neccesary?不应该控制? – Himberjack 2011-03-28 07:54:38

+0

使用网页控件取决于你想完成什么。例如,如果您想在回发之间保持状态,这是Web控件的主要用途,那么您可以将其转换为适合该模型。为了简单地输出一个不需要维护状态的列表,只需输出html即可。如果你需要在页面上做回发,我会建议使用ajax并返回json /只有你需要的数据和通过javascript操作页面内容。你也可以使用updatePanels,但它取决于你最熟悉的。 – 2011-03-29 00:25:45

相关问题