Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I've found that the simplest way to do nested repeaters without worrying about databinding events is to just set the DataSource using <code>&lt;%# %&gt;</code> syntax.</p> <p>For example:</p> <pre><code>&lt;asp:Repeater runat="server" id="Departments"&gt; &lt;ItemTemplate&gt; Name: &lt;%# Eval("DeptName") %&gt; Employees: &lt;asp:Repeater runat="server" DataSource='&lt;%# Eval("Employees") %&gt;'&gt; &lt;ItemTemplate&gt;&lt;%# Eval("Name") %&gt;&lt;/ItemTemplate&gt; &lt;SeparatorTemplate&gt;,&lt;/SeparatorTemplate&gt; &lt;/asp:Repeater&gt; &lt;/ItemTemplate&gt; &lt;/asp:Repeater&gt; </code></pre> <p>This is presuming that your Departments class has an Employees property - eg:</p> <pre><code>public class Department { public string DeptName {get; set;} public IEnumerable&lt;Employee&gt; Employees {get; set;} } public class Employee { public string Name {get; set;} } </code></pre> <p>If your outer-repeater object doesn't have a property corresponding to the inner-repeater object you can still use this trick, by adding a method in your code-behind that does the calculation. So your inner repeater might become:</p> <pre><code>&lt;asp:Repeater runat="server" DataSource='&lt;%# GetEmployees(Container.DataItem) %&gt;'&gt; </code></pre> <p>and then GetEmployees might look something like:</p> <pre><code>protected IEnumerable&lt;Employee&gt; GetEmployees(object item) { var dept = (Department) item; // then do whatever is necessary to get the employees from dept return employees; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload