2008-11-07 7 views
2

Я создаю богатый элемент управления ретранслятором, которому нужны некоторые элементы управления (в частности, только неупорядоченный список), добавленные к нему во время выполнения.

Решение, на которое я решил, заключается в том, чтобы внедрить nesseccary-разметку onInit в шаблоны заголовка, элемента и нижнего колонтитула соответственно.
Я могу получить шаблоны (используя InstantiateIn), а затем добавить разметку по мере необходимости, но я не знаю, как добавить шаблон обратно в ретранслятор?Как добавить элементы управления в ItemTemplate (Repeater) во время выполнения?

ответ

4

В прошлом я просто обработал ItemDataBound Event и изменил текущий RepeaterItem тем, что мне нужно было сделать.

Пример:

private void Repeater1_ItemDataBound(object Sender, RepeaterItemEventArgs e) 
{ 
    // Make sure you filter for the item you are after 
    if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) 
    { 
     PlaceHolder listLocation = (PlaceHolder)e.Item.FindControl("listPlaceHolder"); 
     var subItems = ((MyClass)e.Item.DataItem).SubItems; 

     listLocation.Controls.Add(new LiteralControl("<ul>"); 

     foreach(var item in subItems) 
     { 
      listLocation.Controls.Add(new LiteralControl("<li>" + item + "</li>")); 
     } 

     listLocation.Controls.Add(new LiteralControl("</ul>"); 
    } 
} 
+0

ли я быть в состоянии сделать это внутри составного элемента управления? – 2008-11-07 11:55:26