2011-03-27 51 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

相關問題