Как получить доступ к свойствам элементов внутри ретранслятора?

У меня есть элемент управления Repeater, у которого в источнике данных установлен список типизированных объектов, а во встроенном коде я хочу получить доступ к свойствам его элементов внутри тега ItemTemplate. Я пробовал это с выражением eval, но это не сработало:

<ItemTemplate>
  <tr>
    <td><%# Eval("code") %></td>
    <td><%# Eval("description") %></td>
  </tr>
</ItemTemplate>

Есть идеи?
Спасибо !!


person Alfre2    schedule 28.04.2009    source источник


Ответы (2)


Вы можете использовать: <%# DataBinder.Eval(Container.DataItem, "field name") %>

person Fabio Vinicius Binder    schedule 28.04.2009

Есть ли у вашего объекта свойство под названием «код». Помните, что это чувствительно к регистру.

например Если бы ваш объект был ...

public class MyObj
{
    public string Code { get; set; }
    public string Description { get; set; }
}

И вы привязывали Collection<MyObj> к своему источнику данных,

Тогда твой репитер будет выглядеть ...

<asp:repeater id="Repeater1" runat="server">
    <headertemplate>
      <table border="1">
        <tr>
          <td><b>Code</b></td>
          <td><b>Description</b></td>
        </tr>
    </headertemplate>

    <itemtemplate>
      <tr>
        <td> <%# Eval("Code") %> </td>
        <td> <%# Eval("Description") %> </td>
      </tr>
    </itemtemplate>

    <footertemplate>
      </table>
    </footertemplate>
  </asp:repeater>
person Eoin Campbell    schedule 28.04.2009
comment
Спасибо, Eoin, но это то, что я пробовал, это дало мне ошибку, потому что его можно использовать только в контексте элемента управления привязкой данных. - person Alfre2; 28.04.2009