2010-08-04 4 views
0

aspx 페이지에서 일부 이미지를 렌더링하려고합니다.C# 일반 목록 및 ASP Repeater Fun

오류 아래 코드에서 점점 : DataBinding : '_Default + ImageThing'에 'FileName'이름의 속성이 없습니다. 여기

public class ImageThing 
    { 
     public string FileName; 
    } 

    private void DisplayThumbnailImages() 
    { 
     ImageThing imageThing1 = new ImageThing(); 
     ImageThing imageThing2 = new ImageThing(); 
     imageThing1.FileName = "asdf.jpg"; 
     imageThing2.FileName = "aaa.jpg"; 

     List<ImageThing> imagesToRender = new List<ImageThing>(); 
     imagesToRender.Add(imageThing1); 
     imagesToRender.Add(imageThing2); 

     Repeater1.DataSource = imagesToRender; 
     Repeater1.DataBind(); 
    } 

는 영문입니다 :

답변

2

를 시도

 <asp:Repeater ID="Repeater1" runat="server"> 
      <ItemTemplate> 
      <%#DataBinder.Eval(Container.DataItem, "FileName")%> 
      </ItemTemplate> 
     </asp:Repeater> 

감사 필드가 작동하지 않는 구문을 결합, 그것은 단지 특성 작동 데이터 . 당신의 ImageThing 클래스에이 변경을 시도해보십시오

public class ImageThing 
{ 
    public string FileName { get; set; } 
} 

지금은 속성의 현재 액세스 할 수 있어야하는 것은 <퍼센트의 # DataBinder.Eval (Container.DataItem, "파일 이름") %를 사용하여 템플릿을 통해입니다 > (또는 더 나은 것, 단지 < % # Eval ("FileName") %>).

해피 프로그래밍!

+0

Dangit! 너는 나를 때렸다. :) +1 –

+0

그게 다야 - 스턴, 그리고 djacobson도 환호 :-) –

0

단순히

<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
    <%# Eval("FileName") %> 
    </ItemTemplate> 
</asp:Repeater> 
+0

감사합니다 (... 위에서 사용 된 자동 구현 속성 구문은 C#을 3.0 +에서만 사용할 수 있습니다)하지만, .NET3.5 –

+0

에 대해 .. VS2010 웹 사이트 프로젝트를 사용하고 동일한 오류를 가져옵니다 다른 사람들은 옳다. 이것은 재산이어야합니다. – marcind

0

ImageBinding.Eval은 리플렉션을 사용하여 ImageThing의 FileName 속성에 액세스하는 것으로 가정합니다. public 필드가 아닌 FileName을 실제 속성으로 만드십시오. 예 : public string FileName { get; set; }, 작동합니까?