以编程方式将InnerHtml添加到ListItem?

时间:2011-07-28 13:34:15

标签: c# .net asp.net servercontrols

我有一个服务器控件包装BulletedList,它呈现为无序列表。

我希望能够将ListItem文本中的HTML标记呈现为HTML(不像现在那样被转义)。

我开始认为这是不可能的。我在这里看过几个类似的问题,但是他们的答案都涉及使用例如aspx页面中的转发器,我没有。 我知道有些控件具有不同的属性,可以逐字渲染或转义内容,例如Text / InnerHTML,但我找不到BulletedList的任何类似可能性。

肯定有可能......

以下代码中的代码使用我的服务器控件(list

protected void RenderItem(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || 
        e.Item.ItemType == ListItemType.AlternatingItem)
    {
        e.Item.Controls.Add(new LiteralControl("<li >"));

        Relation rel = (Relation)e.Item.DataItem;
        // rel.List is the control containing the BulletedList
        MyList list = rel.List;
        e.Item.Controls.Add(list); 

        e.Item.Controls.Add(new LiteralControl("</li>"));
    }
}

这是我的服务器列表控件的相关部分:

public class MyList : Control, INamingContainer
{

    private readonly HyperLink _showAllLink = new HyperLink { NavigateUrl = "javascript:void(0);", Visible = false };
    private readonly BulletedList _list = new BulletedList();

    public ListItemCollection Items
    {
        get
        {
             return _list.Items;
        }
    }

}

1 个答案:

答案 0 :(得分:0)

看起来Bulleted列表似乎不支持插入HTML。