0
私は、順序付けられていないリストとしてレンダリングするBulletedListをラップするサーバーコントロールを持っています。InnerHtmlをプログラムでListItemに追加しますか?
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;
}
}
}