使用asp.net C#。
我有BulletList,我想添加将使用子进行渲染的ListItem。
也就是说,在每个<li>
内,我可以添加更多要渲染的控件。
我怎样才能做到这一点?
感谢
答案 0 :(得分:0)
我不确定为什么BulletedList有一个ListItems集合。 ListItem通常用于表单元素(因此是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));