2014-02-24 4 views
0

리피터가 리피터 안에 있고 세션에서 리피터 목록을 자식 리피터에 바인딩하려고합니다. 나는 다음과 같은 한 아이 리피터에서콜렉션 위치를 기준으로 리피터를 바인드합니다.

 var results = HttpContext.Current.Session["completeRecord"]; 

    var rep = (Repeater)e.Item.FindControl("rptAkas"); 

    var akaList = new List<string>(); 

    foreach (Entity list in (IEnumerable<Entity>) results) 
    { 
     akaList.AddRange(list.Aka); 
    } 
    rep.DataSource = akaList; 
    rep.DataBind(); 

: 같은

내 코드 숨김 보이는

<asp:Repeater runat="server" ID="rptAkas" OnItemDataBound="repeater_OnItemDataBound"> 
     <ItemTemplate> 
     <p><strong>Aka</strong><asp:Literal runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "akaList") %>'></asp:Literal></p> 
     </ItemTemplate> 
    </asp:Repeater> 

이 다음과 같은 메시지가 발생합니다 :

추가 정보 : 데이터 바인딩 : '시스템을 .String '은'akaList '라는 이름의 속성을 포함하지 않습니다.

어떻게하면이 목록을 리피터에 바인딩 할 수 있습니까?

편집

Container.DataItem은 처리했다.

+0

"엔터티"에 "akaList"라는 열이 있습니까? –

+0

엔티티를 기반으로 새 목록을 만든 다음 해당 목록을 자식 리피터에 바인딩해야합니다. – CSharpNewBee

+0

수확기를 (IEnumerable ) 결과로 바인딩 했습니까? –

답변

1

Container.DataItem입니다. 현재 항목은 중개자가을 반복하고 있습니다. 그것은 문자열 목록이 아니며, 개별 문자열입니다. 좀 더 의사의 형태로 무슨 일을하는지의

생각해 : 당신이 Container.DataItem를 참조하면

foreach (var a_single_string in Repeater.DataSource) 
{ 
    var some_var = a_single_string.akaList; 
} 

, 그것은 위의 예에서 a_single_string를 해결 동일합니다.

장황한 코드로 실제 적용 할 수있는 코드는 아니지만 오류가 발생하는 이유가 무엇인지 설명해 주시기 바랍니다. 실제로 문자열의 "akaList"속성을 요청하고 있으므로 오류가 발생합니다.

관련 문제