title: Is there an ASP.NET databindable control (like Repeater), which only expects a single item?
body: <p>I'm trying display lots of properties from a business object on a Web Form. I could of course, create loads of labels and assign all the values in code-behind, but I feel there must be a less verbose way.</p>
  
  <p>What I want is something like an asp:Panel but where you can specify a datasource. It doesn't seem like Panels support any kind of databinding.</p>
  
  <p>What I'd like is something like this</p>
  
  <pre><code>// C#
  panel.DataSource = theCompany;
  panel.DataBind();
  </code></pre>
  
  <p>Then:</p>
  
  <pre><code>// ASPX
  
  &lt;asp:Panel runat="server"&gt;
      Name: &lt;%# Eval("Name") %&gt;
      Phone: &lt;%# Eval("Phone") %&gt; 
      ...
  &lt;/asp:Panel&gt;
  </code></pre>
  
  <p>..but I can't find anything which will allow me to work in this way.</p>
  
  <p>I thought I might be able to use <strong>asp:FormView</strong> but this just gives the error "Data source is an invalid type.  It must be either an IListSource, IEnumerable, or IDataSource." </p>
  
  <p>A caveat is that I <em>do not</em> want to call a global DataBind() (this has caused us no-end of problems in the past) - I would like the databind to be constrained to a particular part of the page.</p>