Общий список C # и ASP Repeater Fun - PullRequest
0 голосов
/ 05 августа 2010

Я пытаюсь сделать несколько изображений на странице aspx.

Ошибка, которую я получаю в следующем коде: Привязка данных: _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();
    }

вот aspx:

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

Спасибо

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

Синтаксис привязки данных не работает с полями, он работает только со свойствами. Попробуйте внести это изменение в свой класс ImageThing:

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

Теперь это свойство, и теперь вы должны иметь доступ к нему через шаблон, используя <% # DataBinder.Eval (Container.DataItem, "FileName")%> (или даже лучше, просто <% # Eval ("FileName")%> ).

Счастливого программирования!

0 голосов
/ 05 августа 2010

DataBinder.Eval (я предполагаю) использует отражение для доступа к свойству FileName вашего ImageThing.Попробуйте сделать FileName фактическим свойством, а не просто открытым полем, например: public string FileName { get; set; }, это работает?

(Обратите внимание, что используемый выше синтаксис автоматически реализуемого свойства доступен только в C # 3.0+ ...)

0 голосов
/ 05 августа 2010

Вы пробовали просто

<asp:Repeater ID="Repeater1" runat="server"> 
  <ItemTemplate> 
    <%# Eval("FileName") %>
  </ItemTemplate> 
</asp:Repeater> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...