2008-11-07 2 views
2

런타임에 추가 된 일부 컨트롤 (특히 정렬되지 않은 목록)이 필요한 풍부한 리피터 컨트롤을 desing하는 중입니다.

내가 선택한 해결책은 머리글, 항목 및 바닥 글 템플릿에 네스케이프 마크 업 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

내가 복합 컨트롤 내에서이 작업을 수행 할 수 있을까? –

+0

아담이 당신의 혼란이 어디 있는지 모르겠습니다. 아마도 질문을 편집하고 코드 또는 추가 설명을 추가 할 수 있습니다. –

관련 문제