0
使用asp.net C#。 我有BulletList,我想添加ListItem,将与孩子呈现。 也就是说,在每个<li>
里面,我可以添加更多控件来渲染。如何扩展ListItem以便能够在子项列表中使用子项
我该如何做到这一点?
感谢
使用asp.net C#。 我有BulletList,我想添加ListItem,将与孩子呈现。 也就是说,在每个<li>
里面,我可以添加更多控件来渲染。如何扩展ListItem以便能够在子项列表中使用子项
我该如何做到这一点?
感谢
我不知道为什么有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));
不从Control继承neccesary?不应该控制? – Himberjack 2011-03-28 07:54:38
使用网页控件取决于你想完成什么。例如,如果您想在回发之间保持状态,这是Web控件的主要用途,那么您可以将其转换为适合该模型。为了简单地输出一个不需要维护状态的列表,只需输出html即可。如果你需要在页面上做回发,我会建议使用ajax并返回json /只有你需要的数据和通过javascript操作页面内容。你也可以使用updatePanels,但它取决于你最熟悉的。 – 2011-03-29 00:25:45